home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 10 / BBS In A Box Volume X (AMUG) (January 1994).bin / Files / Prog / U-Z / VideoToolBox.cpt / VideoToolboxSources / ConvolveX.c < prev    next >
MacBinary  |  1993-03-04  |  11.8 KB  |  [TEXT/KAHL]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Thu Mar 4 02:13:39 1993, modified Thu Mar 4 02:13:39 1993, creator Think C, type ASCII, 10933 bytes "ConvolveX.c" , at 0x2b35 810 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[KAHL]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0b 43 6f 6e 76 6f 6c | 76 65 58 2e 63 00 00 00 |..Convol|veX.c...|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 01 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 2a b5 00 | 00 03 2a a7 bb 5c a3 a7 |.....*..|..*..\..|
|00000060| bb 5c a3 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.\......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 82 b6 00 00 |........|........|
|00000080| 2f 2a 20 0d 43 6f 6e 76 | 6f 6c 76 65 58 2f 59 2e |/* .Conv|olveX/Y.|
|00000090| 63 0d a9 20 31 39 38 39 | 2d 31 39 39 33 20 44 65 |c.. 1989|-1993 De|
|000000a0| 6e 69 73 20 47 2e 20 50 | 65 6c 6c 69 0d 53 69 6d |nis G. P|elli.Sim|
|000000b0| 70 6c 65 20 6f 6e 65 2d | 64 69 6d 65 6e 73 69 6f |ple one-|dimensio|
|000000c0| 6e 61 6c 20 63 6f 6e 76 | 6f 6c 75 74 69 6f 6e 2e |nal conv|olution.|
|000000d0| 20 43 6f 6e 76 6f 6c 76 | 65 20 69 6d 61 67 65 20 | Convolv|e image |
|000000e0| 69 6e 20 73 72 63 42 69 | 74 73 20 62 79 20 61 72 |in srcBi|ts by ar|
|000000f0| 72 61 79 20 66 5b 5d 20 | 74 6f 0d 70 72 6f 64 75 |ray f[] |to.produ|
|00000100| 63 65 20 69 6d 61 67 65 | 20 64 73 74 42 69 74 73 |ce image| dstBits|
|00000110| 2e 20 73 72 63 20 61 6e | 64 20 64 73 74 20 6d 61 |. src an|d dst ma|
|00000120| 79 20 68 61 76 65 20 61 | 6e 79 20 70 69 78 65 6c |y have a|ny pixel|
|00000130| 53 69 7a 65 2c 20 62 75 | 74 20 74 68 65 20 63 61 |Size, bu|t the ca|
|00000140| 6c 63 75 6c 61 74 69 6f | 6e 0d 69 74 73 65 6c 66 |lculatio|n.itself|
|00000150| 20 69 73 20 64 6f 6e 65 | 20 77 69 74 68 20 38 20 | is done| with 8 |
|00000160| 62 69 74 73 20 70 65 72 | 20 70 69 78 65 6c 2e 20 |bits per| pixel. |
|00000170| 41 73 73 75 6d 65 73 20 | 74 68 61 74 20 65 76 65 |Assumes |that eve|
|00000180| 72 79 74 68 69 6e 67 20 | 68 61 73 20 69 74 73 20 |rything |has its |
|00000190| 6f 72 69 67 69 6e 20 61 | 74 0d 69 74 73 20 63 65 |origin a|t.its ce|
|000001a0| 6e 74 65 72 2e 20 42 65 | 66 6f 72 65 20 63 61 6c |nter. Be|fore cal|
|000001b0| 6c 69 6e 67 20 43 6f 6e | 76 6f 6c 76 65 58 2f 59 |ling Con|volveX/Y|
|000001c0| 20 79 6f 75 20 73 68 6f | 75 6c 64 20 63 61 6c 6c | you sho|uld call|
|000001d0| 20 53 65 74 45 6e 74 72 | 69 65 73 28 29 20 74 6f | SetEntr|ies() to|
|000001e0| 20 73 65 74 20 75 70 0d | 74 68 65 20 63 6f 6c 6f | set up.|the colo|
|000001f0| 72 20 74 61 62 6c 65 73 | 20 61 70 70 72 6f 70 72 |r tables| appropr|
|00000200| 69 61 74 65 6c 79 20 28 | 75 6e 6c 65 73 73 20 73 |iately (|unless s|
|00000210| 6f 75 72 63 65 20 61 6e | 64 20 64 65 73 74 69 6e |ource an|d destin|
|00000220| 61 74 69 6f 6e 20 70 69 | 78 6d 61 70 73 20 61 72 |ation pi|xmaps ar|
|00000230| 65 20 62 6f 74 68 20 38 | 0d 62 69 74 73 2f 70 69 |e both 8|.bits/pi|
|00000240| 78 65 6c 2c 20 69 6e 20 | 77 68 69 63 68 20 63 61 |xel, in |which ca|
|00000250| 73 65 20 74 68 65 20 63 | 6f 6c 6f 72 20 74 61 62 |se the c|olor tab|
|00000260| 6c 65 73 20 61 72 65 20 | 69 67 6e 6f 72 65 64 29 |les are |ignored)|
|00000270| 2e 0d 0d 43 6f 6e 76 6f | 6c 76 65 58 2f 59 20 66 |...Convo|lveX/Y f|
|00000280| 69 6c 6c 73 20 65 61 63 | 68 20 70 69 78 65 6c 20 |ills eac|h pixel |
|00000290| 69 6e 20 74 68 65 20 64 | 65 73 74 69 6e 61 74 69 |in the d|estinati|
|000002a0| 6f 6e 20 77 69 74 68 20 | 61 20 77 65 69 67 68 74 |on with |a weight|
|000002b0| 65 64 20 73 75 6d 20 6f | 76 65 72 20 74 68 65 0d |ed sum o|ver the.|
|000002c0| 73 6f 75 72 63 65 2c 20 | 63 65 6e 74 65 72 65 64 |source, |centered|
|000002d0| 20 6f 6e 20 74 68 65 20 | 63 6f 72 72 65 73 70 6f | on the |correspo|
|000002e0| 6e 64 69 6e 67 20 70 69 | 78 65 6c 20 69 6e 20 74 |nding pi|xel in t|
|000002f0| 68 65 20 73 6f 75 72 63 | 65 2e 20 54 6f 20 61 76 |he sourc|e. To av|
|00000300| 6f 69 64 20 65 64 67 65 | 0d 65 66 66 65 63 74 73 |oid edge|.effects|
|00000310| 2c 20 69 74 20 6f 6e 6c | 79 20 63 6f 6d 70 75 74 |, it onl|y comput|
|00000320| 65 73 20 70 69 78 65 6c | 73 20 69 6e 20 74 68 65 |es pixel|s in the|
|00000330| 20 64 65 73 74 69 6e 61 | 74 69 6f 6e 20 77 68 69 | destina|tion whi|
|00000340| 63 68 20 68 61 76 65 20 | 66 75 6c 6c 20 73 75 70 |ch have |full sup|
|00000350| 70 6f 72 74 20 69 6e 0d | 74 68 65 20 73 6f 75 72 |port in.|the sour|
|00000360| 63 65 2e 20 49 66 20 6e | 65 63 65 73 73 61 72 79 |ce. If n|ecessary|
|00000370| 2c 20 43 6f 6e 76 6f 6c | 76 65 58 2f 59 20 77 69 |, Convol|veX/Y wi|
|00000380| 6c 6c 20 69 6e 73 65 74 | 20 74 68 65 20 73 6f 75 |ll inset| the sou|
|00000390| 72 63 65 20 6f 72 20 64 | 65 73 74 69 6e 61 74 69 |rce or d|estinati|
|000003a0| 6f 6e 20 72 65 63 74 2c | 0d 73 6f 20 74 68 61 74 |on rect,|.so that|
|000003b0| 20 74 68 65 20 64 65 73 | 74 69 6e 61 74 69 6f 6e | the des|tination|
|000003c0| 20 77 69 64 74 68 2f 68 | 65 69 67 68 74 20 70 6c | width/h|eight pl|
|000003d0| 75 73 20 74 68 65 20 61 | 72 72 61 79 20 6c 65 6e |us the a|rray len|
|000003e0| 67 74 68 20 65 71 75 61 | 6c 73 20 74 68 65 20 73 |gth equa|ls the s|
|000003f0| 6f 75 72 63 65 0d 77 69 | 64 74 68 2f 68 65 69 67 |ource.wi|dth/heig|
|00000400| 68 74 2e 0d 0d 49 74 20 | 77 6f 75 6c 64 20 62 65 |ht...It |would be|
|00000410| 20 6e 69 63 65 20 74 6f | 20 63 6f 6e 76 65 72 74 | nice to| convert|
|00000420| 20 74 68 69 73 20 74 6f | 20 75 73 65 20 47 65 74 | this to| use Get|
|00000430| 20 61 6e 64 20 53 65 74 | 50 69 78 65 6c 73 51 75 | and Set|PixelsQu|
|00000440| 69 63 6b 6c 79 20 69 6e | 73 74 65 61 64 20 6f 66 |ickly in|stead of|
|00000450| 0d 64 69 72 65 63 74 6c | 79 20 61 63 63 65 73 73 |.directl|y access|
|00000460| 69 6e 67 20 74 68 65 20 | 70 69 78 65 6c 73 2e 20 |ing the |pixels. |
|00000470| 54 68 69 73 20 77 6f 75 | 6c 64 20 69 6e 74 72 6f |This wou|ld intro|
|00000480| 64 75 63 65 20 61 20 73 | 6d 61 6c 6c 20 6f 76 65 |duce a s|mall ove|
|00000490| 72 68 65 61 64 2c 20 73 | 69 6e 63 65 20 74 68 65 |rhead, s|ince the|
|000004a0| 0d 6e 75 6d 62 65 72 73 | 20 77 6f 75 6c 64 20 62 |.numbers| would b|
|000004b0| 65 20 63 6f 70 69 65 64 | 20 69 6e 74 6f 20 61 20 |e copied| into a |
|000004c0| 6c 6f 6e 67 20 61 72 72 | 61 79 20 61 6e 64 20 66 |long arr|ay and f|
|000004d0| 72 6f 6d 20 74 68 65 6e | 63 65 20 69 6e 74 6f 20 |rom then|ce into |
|000004e0| 74 68 65 20 70 69 78 65 | 6c 73 2c 20 69 6e 73 74 |the pixe|ls, inst|
|000004f0| 65 61 64 0d 6f 66 20 62 | 65 69 6e 67 20 73 74 75 |ead.of b|eing stu|
|00000500| 66 66 65 64 20 64 69 72 | 65 63 74 6c 79 2c 20 62 |ffed dir|ectly, b|
|00000510| 75 74 20 77 6f 75 6c 64 | 20 70 72 6f 62 61 62 6c |ut would| probabl|
|00000520| 79 20 6d 61 6b 65 20 74 | 68 69 73 20 70 72 6f 67 |y make t|his prog|
|00000530| 72 61 6d 20 71 75 69 74 | 65 20 61 20 62 69 74 20 |ram quit|e a bit |
|00000540| 65 61 73 69 65 72 0d 74 | 6f 20 72 65 61 64 2e 0d |easier.t|o read..|
|00000550| 0d 42 55 47 53 3a 0d 53 | 65 74 74 69 6e 67 20 49 |.BUGS:.S|etting I|
|00000560| 4d 50 52 4f 56 45 44 5f | 52 4f 55 4e 44 49 4e 47 |MPROVED_|ROUNDING|
|00000570| 20 74 6f 20 74 72 75 65 | 20 69 6d 70 72 6f 76 65 | to true| improve|
|00000580| 73 20 72 65 73 75 6c 74 | 73 20 69 6e 20 73 6f 6d |s result|s in som|
|00000590| 65 20 61 70 70 6c 69 63 | 61 74 69 6f 6e 73 2c 20 |e applic|ations, |
|000005a0| 62 75 74 0d 73 63 72 65 | 77 73 20 75 70 20 6f 74 |but.scre|ws up ot|
|000005b0| 68 65 72 73 20 28 65 2e | 67 2e 20 74 68 65 20 64 |hers (e.|g. the d|
|000005c0| 65 6d 6f 20 46 69 6c 74 | 65 72 2e 63 29 2e 20 49 |emo Filt|er.c). I|
|000005d0| 20 64 6f 6e 27 74 20 68 | 61 76 65 20 74 69 6d 65 | don't h|ave time|
|000005e0| 20 74 6f 20 66 69 67 75 | 72 65 20 74 68 69 73 20 | to figu|re this |
|000005f0| 6f 75 74 20 61 74 20 0d | 74 68 65 20 6d 6f 6d 65 |out at .|the mome|
|00000600| 6e 74 2c 20 73 6f 20 49 | 27 6d 20 6c 65 61 76 69 |nt, so I|'m leavi|
|00000610| 6e 67 20 61 20 66 6c 61 | 67 20 74 68 61 74 20 63 |ng a fla|g that c|
|00000620| 61 6e 20 62 65 20 74 75 | 72 6e 65 64 20 6f 6e 20 |an be tu|rned on |
|00000630| 6f 72 20 6f 66 66 20 74 | 6f 20 73 75 69 74 20 79 |or off t|o suit y|
|00000640| 6f 75 72 20 0d 61 70 70 | 6c 69 63 61 74 69 6f 6e |our .app|lication|
|00000650| 2e 20 49 20 65 78 70 65 | 63 74 20 74 6f 20 66 69 |. I expe|ct to fi|
|00000660| 78 20 74 68 69 73 20 61 | 6e 64 20 65 6c 69 6d 69 |x this a|nd elimi|
|00000670| 6e 61 74 65 20 74 68 65 | 20 66 6c 61 67 20 69 6e |nate the| flag in|
|00000680| 20 74 68 65 20 66 75 74 | 75 72 65 2e 0d 0d 48 49 | the fut|ure...HI|
|00000690| 53 54 4f 52 59 3a 0d 34 | 2f 31 2f 38 39 20 64 67 |STORY:.4|/1/89 dg|
|000006a0| 70 09 74 77 69 63 65 20 | 61 73 20 66 61 73 74 2c |p.twice |as fast,|
|000006b0| 20 74 68 61 6e 6b 73 20 | 74 6f 20 72 65 63 6f 64 | thanks |to recod|
|000006c0| 69 6e 67 20 74 6f 20 75 | 73 65 20 6c 6f 6e 67 20 |ing to u|se long |
|000006d0| 69 6e 73 74 65 61 64 20 | 6f 66 20 66 6c 6f 61 74 |instead |of float|
|000006e0| 20 61 72 69 74 68 6d 65 | 74 69 63 2e 0d 34 2f 32 | arithme|tic..4/2|
|000006f0| 2f 38 39 20 64 67 70 09 | 6d 61 64 65 20 75 6e 69 |/89 dgp.|made uni|
|00000700| 76 65 72 73 61 6c 20 62 | 79 20 75 73 69 6e 67 20 |versal b|y using |
|00000710| 6c 69 6e 65 20 62 75 66 | 66 65 72 73 20 66 6f 72 |line buf|fers for|
|00000720| 20 62 6f 74 68 20 73 72 | 63 20 61 6e 64 20 64 73 | both sr|c and ds|
|00000730| 74 2c 20 61 6e 64 20 69 | 6e 74 65 72 66 61 63 69 |t, and i|nterfaci|
|00000740| 6e 67 0d 09 09 09 74 6f | 20 74 68 65 20 73 72 63 |ng....to| the src|
|00000750| 20 61 6e 64 20 64 73 74 | 20 50 69 78 4d 61 70 73 | and dst| PixMaps|
|00000760| 20 73 6f 6c 65 6c 79 20 | 74 68 72 6f 75 67 68 20 | solely |through |
|00000770| 43 6f 70 79 42 69 74 73 | 2e 0d 34 2f 32 2f 38 39 |CopyBits|..4/2/89|
|00000780| 20 64 67 70 09 43 6f 6e | 76 6f 6c 76 65 58 2f 59 | dgp.Con|volveX/Y|
|00000790| 2e 63 2c 20 61 20 70 72 | 65 2d 70 72 6f 63 65 73 |.c, a pr|e-proces|
|000007a0| 73 6f 72 20 63 6f 6e 64 | 69 74 69 6f 6e 61 6c 20 |sor cond|itional |
|000007b0| 77 61 73 20 61 64 64 65 | 64 20 74 6f 20 67 65 6e |was adde|d to gen|
|000007c0| 65 72 61 74 65 20 43 6f | 6e 76 6f 6c 76 65 58 0d |erate Co|nvolveX.|
|000007d0| 09 09 09 61 6e 64 20 43 | 6f 6e 76 6f 6c 76 65 59 |...and C|onvolveY|
|000007e0| 20 66 72 6f 6d 20 74 68 | 65 20 53 41 4d 45 20 73 | from th|e SAME s|
|000007f0| 6f 75 72 63 65 2e 20 54 | 68 65 20 74 77 6f 20 66 |ource. T|he two f|
|00000800| 69 6c 65 73 20 61 72 65 | 20 49 44 45 4e 54 49 43 |iles are| IDENTIC|
|00000810| 41 4c 20 65 78 63 65 70 | 74 0d 09 09 09 66 6f 72 |AL excep|t....for|
|00000820| 20 74 68 65 20 70 72 65 | 70 72 6f 63 65 73 73 6f | the pre|processo|
|00000830| 72 20 64 65 66 69 6e 69 | 74 69 6f 6e 20 6f 66 20 |r defini|tion of |
|00000840| 43 4f 4e 56 4f 4c 56 45 | 5f 58 20 61 73 20 31 20 |CONVOLVE|_X as 1 |
|00000850| 74 6f 20 67 65 6e 65 72 | 61 74 65 20 43 6f 6e 76 |to gener|ate Conv|
|00000860| 6f 6c 76 65 58 2c 0d 09 | 09 09 6f 72 20 30 20 74 |olveX,..|..or 0 t|
|00000870| 6f 20 67 65 6e 65 72 61 | 74 65 20 43 6f 6e 76 6f |o genera|te Convo|
|00000880| 6c 76 65 59 2e 0d 31 30 | 2f 39 2f 38 39 20 64 67 |lveY..10|/9/89 dg|
|00000890| 70 09 46 69 78 65 64 20 | 6f 76 65 72 66 6c 6f 77 |p.Fixed |overflow|
|000008a0| 20 62 75 67 2e 20 53 70 | 65 65 64 65 64 20 75 70 | bug. Sp|eeded up|
|000008b0| 20 74 68 65 20 63 6f 6e | 76 6f 6c 75 74 69 6f 6e | the con|volution|
|000008c0| 20 6c 6f 6f 70 20 73 6c | 69 67 68 74 6c 79 2e 0d | loop sl|ightly..|
|000008d0| 09 09 09 41 64 64 65 64 | 20 63 6f 6e 64 69 74 69 |...Added| conditi|
|000008e0| 6f 6e 61 6c 20 74 6f 20 | 75 73 65 20 43 6f 70 79 |onal to |use Copy|
|000008f0| 42 69 74 73 51 75 69 63 | 6b 6c 79 20 69 6e 73 74 |BitsQuic|kly inst|
|00000900| 65 61 64 20 6f 66 20 43 | 6f 70 79 42 69 74 73 20 |ead of C|opyBits |
|00000910| 77 68 65 6e 20 73 6f 75 | 72 63 65 20 61 6e 64 0d |when sou|rce and.|
|00000920| 09 09 09 64 65 73 74 69 | 6e 61 74 69 6f 6e 20 70 |...desti|nation p|
|00000930| 69 78 65 6c 53 69 7a 65 | 20 61 72 65 20 38 20 62 |ixelSize| are 8 b|
|00000940| 69 74 73 2e 20 54 68 69 | 73 20 68 61 73 20 74 77 |its. Thi|s has tw|
|00000950| 6f 20 76 69 72 74 75 65 | 73 2e 20 49 74 27 73 20 |o virtue|s. It's |
|00000960| 66 61 73 74 65 72 2c 20 | 61 6e 64 0d 09 09 09 69 |faster, |and....i|
|00000970| 74 20 62 79 70 61 73 73 | 65 73 20 74 68 65 20 43 |t bypass|es the C|
|00000980| 6f 6c 6f 72 20 4d 61 6e | 61 67 65 72 27 73 20 74 |olor Man|ager's t|
|00000990| 72 61 6e 73 66 6f 72 6d | 61 74 69 6f 6e 73 20 74 |ransform|ations t|
|000009a0| 68 72 6f 75 67 68 20 74 | 68 65 20 63 6f 6c 6f 72 |hrough t|he color|
|000009b0| 20 61 6e 64 20 69 6e 76 | 65 72 73 65 0d 09 09 09 | and inv|erse....|
|000009c0| 63 6f 6c 6f 72 20 74 61 | 62 6c 65 73 2c 20 77 68 |color ta|bles, wh|
|000009d0| 69 63 68 20 63 6f 73 74 | 73 20 74 69 6d 65 20 61 |ich cost|s time a|
|000009e0| 6e 64 20 6c 6f 73 65 73 | 20 61 63 63 75 72 61 63 |nd loses| accurac|
|000009f0| 79 2e 0d 31 30 2f 31 30 | 2f 38 39 20 64 67 70 20 |y..10/10|/89 dgp |
|00000a00| 4e 6f 77 20 75 73 65 20 | 52 65 63 74 54 6f 41 64 |Now use |RectToAd|
|00000a10| 64 72 65 73 73 20 74 6f | 20 64 65 74 65 72 6d 69 |dress to| determi|
|00000a20| 6e 65 20 74 68 65 20 70 | 69 78 65 6c 53 69 7a 65 |ne the p|ixelSize|
|00000a30| 20 6f 66 20 73 72 63 20 | 61 6e 64 20 64 73 74 2c | of src |and dst,|
|00000a40| 20 74 6f 20 64 65 61 6c | 0d 09 09 09 63 6f 72 72 | to deal|....corr|
|00000a50| 65 63 74 6c 79 20 77 69 | 74 68 20 77 69 6e 64 6f |ectly wi|th windo|
|00000a60| 77 27 73 20 70 69 78 6d | 61 70 2e 0d 37 2f 32 35 |w's pixm|ap..7/25|
|00000a70| 2f 39 31 09 64 67 70 09 | 41 64 64 65 64 20 65 78 |/91.dgp.|Added ex|
|00000a80| 70 6c 69 63 69 74 20 70 | 72 65 70 72 6f 63 65 73 |plicit p|reproces|
|00000a90| 73 6f 72 20 73 79 6d 62 | 6f 6c 20 74 6f 20 74 75 |sor symb|ol to tu|
|00000aa0| 72 6e 20 64 69 61 67 6e | 6f 73 74 69 63 20 70 72 |rn diagn|ostic pr|
|00000ab0| 69 6e 74 6f 75 74 20 6f | 6e 20 61 6e 64 20 6f 66 |intout o|n and of|
|00000ac0| 66 2e 0d 38 2f 32 34 2f | 39 31 09 64 67 70 09 4d |f..8/24/|91.dgp.M|
|00000ad0| 61 64 65 20 63 6f 6d 70 | 61 74 69 62 6c 65 20 77 |ade comp|atible w|
|00000ae0| 69 74 68 20 54 48 49 4e | 4b 20 43 20 35 2e 30 2e |ith THIN|K C 5.0.|
|00000af0| 0d 38 2f 32 37 2f 39 32 | 09 64 67 70 09 41 64 64 |.8/27/92|.dgp.Add|
|00000b00| 65 64 20 47 65 73 74 61 | 6c 74 28 29 2e 0d 31 31 |ed Gesta|lt()..11|
|00000b10| 2f 31 30 2f 39 32 20 64 | 67 70 20 4e 6f 77 20 69 |/10/92 d|gp Now i|
|00000b20| 6e 69 74 69 61 6c 69 7a | 65 20 61 6c 6c 20 66 69 |nitializ|e all fi|
|00000b30| 65 6c 64 73 20 6f 66 20 | 70 69 78 6d 61 70 2c 20 |elds of |pixmap, |
|00000b40| 65 73 70 65 63 69 61 6c | 6c 79 20 74 68 65 20 50 |especial|ly the P|
|00000b50| 4d 56 65 72 73 69 6f 6e | 2e 0d 09 09 09 49 64 65 |MVersion|.....Ide|
|00000b60| 6e 74 69 66 79 20 61 6c | 6c 20 65 72 72 6f 72 20 |ntify al|l error |
|00000b70| 6d 65 73 73 61 67 65 73 | 20 61 73 20 6f 72 69 67 |messages| as orig|
|00000b80| 69 6e 61 74 69 6e 67 20 | 66 72 6f 6d 20 68 65 72 |inating |from her|
|00000b90| 65 3a 20 43 6f 6e 76 6f | 6c 76 65 58 2f 59 2e 0d |e: Convo|lveX/Y..|
|00000ba0| 09 09 09 52 65 70 6c 61 | 63 65 64 20 63 6f 6d 70 |...Repla|ced comp|
|00000bb0| 69 6c 65 2d 74 69 6d 65 | 20 63 6f 6e 64 69 74 69 |ile-time| conditi|
|00000bc0| 6f 6e 61 6c 20 62 79 20 | 61 20 72 75 6e 2d 74 69 |onal by |a run-ti|
|00000bd0| 6d 65 20 63 6f 6e 64 69 | 74 69 6f 6e 61 6c 2c 20 |me condi|tional, |
|00000be0| 73 6f 0d 09 09 09 74 68 | 61 74 20 74 68 65 20 43 |so....th|at the C|
|00000bf0| 6f 6e 76 6f 6c 76 65 59 | 2e 63 20 66 69 6c 65 20 |onvolveY|.c file |
|00000c00| 69 73 20 6e 6f 20 6c 6f | 6e 67 65 72 20 6e 65 65 |is no lo|nger nee|
|00000c10| 64 65 64 2e 0d 31 2f 32 | 32 2f 39 33 09 64 67 70 |ded..1/2|2/93.dgp|
|00000c20| 09 53 77 61 70 4d 4d 55 | 4d 6f 64 65 28 29 2e 0d |.SwapMMU|Mode()..|
|00000c30| 32 2f 31 2f 39 33 09 64 | 67 70 20 49 6d 70 72 6f |2/1/93.d|gp Impro|
|00000c40| 76 65 64 20 72 6f 75 6e | 64 69 6e 67 2e 20 52 65 |ved roun|ding. Re|
|00000c50| 6d 6f 76 65 64 20 63 61 | 6c 6c 73 20 74 6f 20 47 |moved ca|lls to G|
|00000c60| 65 73 74 61 6c 74 2c 20 | 61 73 20 75 6e 6e 65 63 |estalt, |as unnec|
|00000c70| 65 73 73 61 72 79 20 6f | 76 65 72 68 65 61 64 2e |essary o|verhead.|
|00000c80| 0d 32 2f 37 2f 39 33 09 | 64 67 70 09 49 6e 74 72 |.2/7/93.|dgp.Intr|
|00000c90| 6f 64 75 63 65 64 20 73 | 77 69 74 63 68 20 49 4d |oduced s|witch IM|
|00000ca0| 50 52 4f 56 45 44 5f 52 | 4f 55 4e 44 49 4e 47 20 |PROVED_R|OUNDING |
|00000cb0| 74 6f 20 64 69 73 61 62 | 6c 65 20 72 6f 75 6e 64 |to disab|le round|
|00000cc0| 69 6e 67 20 66 6f 72 20 | 64 65 62 75 67 67 69 6e |ing for |debuggin|
|00000cd0| 67 2e 0d 32 2f 38 2f 39 | 33 09 64 67 70 20 46 69 |g..2/8/9|3.dgp Fi|
|00000ce0| 78 65 64 20 6f 76 65 72 | 66 6c 6f 77 20 70 72 6f |xed over|flow pro|
|00000cf0| 62 6c 65 6d 20 63 61 75 | 73 65 64 20 62 79 20 74 |blem cau|sed by t|
|00000d00| 68 65 20 6e 65 77 20 72 | 6f 75 6e 64 69 6e 67 2e |he new r|ounding.|
|00000d10| 0d 2a 2f 0d 23 69 6e 63 | 6c 75 64 65 20 22 56 69 |.*/.#inc|lude "Vi|
|00000d20| 64 65 6f 54 6f 6f 6c 62 | 6f 78 2e 68 22 0d 23 69 |deoToolb|ox.h".#i|
|00000d30| 6e 63 6c 75 64 65 20 3c | 6d 61 74 68 2e 68 3e 0d |nclude <|math.h>.|
|00000d40| 76 6f 69 64 20 43 6f 6e | 76 6f 6c 76 65 58 59 28 |void Con|volveXY(|
|00000d50| 64 6f 75 62 6c 65 20 66 | 5b 5d 2c 69 6e 74 20 64 |double f|[],int d|
|00000d60| 69 6d 2c 42 69 74 4d 61 | 70 20 2a 73 72 63 42 69 |im,BitMa|p *srcBi|
|00000d70| 74 73 0d 09 2c 42 69 74 | 4d 61 70 20 2a 64 73 74 |ts..,Bit|Map *dst|
|00000d80| 42 69 74 73 2c 52 65 63 | 74 20 2a 73 72 63 52 65 |Bits,Rec|t *srcRe|
|00000d90| 63 74 50 74 72 2c 52 65 | 63 74 20 2a 64 73 74 52 |ctPtr,Re|ct *dstR|
|00000da0| 65 63 74 50 74 72 2c 69 | 6e 74 20 63 6f 6e 76 6f |ectPtr,i|nt convo|
|00000db0| 6c 76 65 58 29 3b 0d 23 | 64 65 66 69 6e 65 20 44 |lveX);.#|define D|
|00000dc0| 49 41 47 4e 4f 53 54 49 | 43 53 20 30 09 09 2f 2f |IAGNOSTI|CS 0..//|
|00000dd0| 20 74 72 75 65 20 6f 72 | 20 66 61 6c 73 65 0d 23 | true or| false.#|
|00000de0| 64 65 66 69 6e 65 20 49 | 4d 50 52 4f 56 45 44 5f |define I|MPROVED_|
|00000df0| 52 4f 55 4e 44 49 4e 47 | 20 31 09 2f 2f 20 74 72 |ROUNDING| 1.// tr|
|00000e00| 75 65 20 6f 72 20 66 61 | 6c 73 65 0d 0d 76 6f 69 |ue or fa|lse..voi|
|00000e10| 64 20 43 6f 6e 76 6f 6c | 76 65 58 28 64 6f 75 62 |d Convol|veX(doub|
|00000e20| 6c 65 20 66 5b 5d 2c 69 | 6e 74 20 64 69 6d 2c 42 |le f[],i|nt dim,B|
|00000e30| 69 74 4d 61 70 20 2a 73 | 72 63 42 69 74 73 0d 09 |itMap *s|rcBits..|
|00000e40| 2c 42 69 74 4d 61 70 20 | 2a 64 73 74 42 69 74 73 |,BitMap |*dstBits|
|00000e50| 2c 52 65 63 74 20 2a 73 | 72 63 52 65 63 74 50 74 |,Rect *s|rcRectPt|
|00000e60| 72 2c 52 65 63 74 20 2a | 64 73 74 52 65 63 74 50 |r,Rect *|dstRectP|
|00000e70| 74 72 29 0d 7b 0d 09 43 | 6f 6e 76 6f 6c 76 65 58 |tr).{..C|onvolveX|
|00000e80| 59 28 66 2c 64 69 6d 2c | 73 72 63 42 69 74 73 2c |Y(f,dim,|srcBits,|
|00000e90| 64 73 74 42 69 74 73 2c | 73 72 63 52 65 63 74 50 |dstBits,|srcRectP|
|00000ea0| 74 72 2c 64 73 74 52 65 | 63 74 50 74 72 2c 31 29 |tr,dstRe|ctPtr,1)|
|00000eb0| 3b 0d 7d 0d 0d 76 6f 69 | 64 20 43 6f 6e 76 6f 6c |;.}..voi|d Convol|
|00000ec0| 76 65 59 28 64 6f 75 62 | 6c 65 20 66 5b 5d 2c 69 |veY(doub|le f[],i|
|00000ed0| 6e 74 20 64 69 6d 2c 42 | 69 74 4d 61 70 20 2a 73 |nt dim,B|itMap *s|
|00000ee0| 72 63 42 69 74 73 0d 09 | 2c 42 69 74 4d 61 70 20 |rcBits..|,BitMap |
|00000ef0| 2a 64 73 74 42 69 74 73 | 2c 52 65 63 74 20 2a 73 |*dstBits|,Rect *s|
|00000f00| 72 63 52 65 63 74 50 74 | 72 2c 52 65 63 74 20 2a |rcRectPt|r,Rect *|
|00000f10| 64 73 74 52 65 63 74 50 | 74 72 29 0d 7b 0d 09 43 |dstRectP|tr).{..C|
|00000f20| 6f 6e 76 6f 6c 76 65 58 | 59 28 66 2c 64 69 6d 2c |onvolveX|Y(f,dim,|
|00000f30| 73 72 63 42 69 74 73 2c | 64 73 74 42 69 74 73 2c |srcBits,|dstBits,|
|00000f40| 73 72 63 52 65 63 74 50 | 74 72 2c 64 73 74 52 65 |srcRectP|tr,dstRe|
|00000f50| 63 74 50 74 72 2c 30 29 | 3b 0d 7d 0d 0d 76 6f 69 |ctPtr,0)|;.}..voi|
|00000f60| 64 20 43 6f 6e 76 6f 6c | 76 65 58 59 28 64 6f 75 |d Convol|veXY(dou|
|00000f70| 62 6c 65 20 66 5b 5d 2c | 69 6e 74 20 64 69 6d 2c |ble f[],|int dim,|
|00000f80| 42 69 74 4d 61 70 20 2a | 73 72 63 42 69 74 73 0d |BitMap *|srcBits.|
|00000f90| 09 2c 42 69 74 4d 61 70 | 20 2a 64 73 74 42 69 74 |.,BitMap| *dstBit|
|00000fa0| 73 2c 52 65 63 74 20 2a | 73 72 63 52 65 63 74 50 |s,Rect *|srcRectP|
|00000fb0| 74 72 2c 52 65 63 74 20 | 2a 64 73 74 52 65 63 74 |tr,Rect |*dstRect|
|00000fc0| 50 74 72 2c 69 6e 74 20 | 63 6f 6e 76 6f 6c 76 65 |Ptr,int |convolve|
|00000fd0| 58 29 0d 7b 0d 09 52 65 | 63 74 20 6d 79 73 72 63 |X).{..Re|ct mysrc|
|00000fe0| 52 65 63 74 2c 6d 79 64 | 73 74 52 65 63 74 3b 0d |Rect,myd|stRect;.|
|00000ff0| 09 69 6e 74 20 64 73 74 | 4c 69 6e 65 73 2c 73 72 |.int dst|Lines,sr|
|00001000| 63 4c 69 6e 65 73 2c 64 | 73 74 4c 65 6e 67 74 68 |cLines,d|stLength|
|00001010| 2c 73 72 63 4c 65 6e 67 | 74 68 3b 0d 09 69 6e 74 |,srcLeng|th;..int|
|00001020| 20 6c 69 6e 65 73 3b 0d | 09 75 6e 73 69 67 6e 65 | lines;.|.unsigne|
|00001030| 64 20 63 68 61 72 20 2a | 64 73 74 50 74 72 3d 4e |d char *|dstPtr=N|
|00001040| 55 4c 4c 3b 0d 09 72 65 | 67 69 73 74 65 72 20 75 |ULL;..re|gister u|
|00001050| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 20 2a 73 72 |nsigned |char *sr|
|00001060| 63 50 74 72 3d 4e 55 4c | 4c 3b 0d 09 72 65 67 69 |cPtr=NUL|L;..regi|
|00001070| 73 74 65 72 20 69 6e 74 | 20 69 3b 0d 09 52 65 63 |ster int| i;..Rec|
|00001080| 74 20 64 73 74 52 65 63 | 74 2c 20 73 72 63 52 65 |t dstRec|t, srcRe|
|00001090| 63 74 3b 0d 09 72 65 67 | 69 73 74 65 72 20 6c 6f |ct;..reg|ister lo|
|000010a0| 6e 67 20 74 3b 0d 09 72 | 65 67 69 73 74 65 72 20 |ng t;..r|egister |
|000010b0| 6c 6f 6e 67 20 2a 69 66 | 75 6e 2c 20 2a 66 50 74 |long *if|un, *fPt|
|000010c0| 72 3b 0d 09 6c 6f 6e 67 | 20 69 66 75 6e 53 63 61 |r;..long| ifunSca|
|000010d0| 6c 65 3b 0d 09 69 6e 74 | 20 78 2c 79 2c 73 72 63 |le;..int| x,y,src|
|000010e0| 78 2c 69 6d 69 6e 2c 69 | 6d 61 78 3b 0d 09 64 6f |x,imin,i|max;..do|
|000010f0| 75 62 6c 65 20 74 6d 61 | 78 3b 0d 09 50 69 78 4d |uble tma|x;..PixM|
|00001100| 61 70 20 73 72 63 54 6d | 70 2c 64 73 74 54 6d 70 |ap srcTm|p,dstTmp|
|00001110| 3b 09 2f 2a 20 6c 69 6e | 65 20 62 75 66 66 65 72 |;./* lin|e buffer|
|00001120| 73 20 2a 2f 0d 09 23 69 | 66 20 44 49 41 47 4e 4f |s */..#i|f DIAGNO|
|00001130| 53 54 49 43 53 0d 09 09 | 47 44 48 61 6e 64 6c 65 |STICS...|GDHandle|
|00001140| 20 64 65 76 69 63 65 3d | 4e 55 4c 4c 3b 0d 09 09 | device=|NULL;...|
|00001150| 64 6f 75 62 6c 65 20 61 | 3b 0d 09 23 65 6e 64 69 |double a|;..#endi|
|00001160| 66 0d 09 73 68 6f 72 74 | 20 73 72 63 50 69 78 65 |f..short| srcPixe|
|00001170| 6c 53 69 7a 65 2c 64 73 | 74 50 69 78 65 6c 53 69 |lSize,ds|tPixelSi|
|00001180| 7a 65 3b 0d 09 69 6e 74 | 20 65 72 72 6f 72 3b 0d |ze;..int| error;.|
|00001190| 09 6c 6f 6e 67 20 76 61 | 6c 75 65 3b 0d 09 63 68 |.long va|lue;..ch|
|000011a0| 61 72 20 6d 6d 75 4d 6f | 64 65 3d 74 72 75 65 33 |ar mmuMo|de=true3|
|000011b0| 32 62 3b 0d 09 0d 09 52 | 65 63 74 54 6f 41 64 64 |2b;....R|ectToAdd|
|000011c0| 72 65 73 73 28 28 50 69 | 78 4d 61 70 20 2a 29 73 |ress((Pi|xMap *)s|
|000011d0| 72 63 42 69 74 73 2c 73 | 72 63 52 65 63 74 50 74 |rcBits,s|rcRectPt|
|000011e0| 72 2c 4e 55 4c 4c 2c 26 | 73 72 63 50 69 78 65 6c |r,NULL,&|srcPixel|
|000011f0| 53 69 7a 65 2c 4e 55 4c | 4c 29 3b 0d 09 52 65 63 |Size,NUL|L);..Rec|
|00001200| 74 54 6f 41 64 64 72 65 | 73 73 28 28 50 69 78 4d |tToAddre|ss((PixM|
|00001210| 61 70 20 2a 29 64 73 74 | 42 69 74 73 2c 64 73 74 |ap *)dst|Bits,dst|
|00001220| 52 65 63 74 50 74 72 2c | 4e 55 4c 4c 2c 26 64 73 |RectPtr,|NULL,&ds|
|00001230| 74 50 69 78 65 6c 53 69 | 7a 65 2c 4e 55 4c 4c 29 |tPixelSi|ze,NULL)|
|00001240| 3b 0d 09 69 66 75 6e 20 | 3d 20 28 6c 6f 6e 67 20 |;..ifun |= (long |
|00001250| 2a 29 20 6d 61 6c 6c 6f | 63 28 64 69 6d 2a 73 69 |*) mallo|c(dim*si|
|00001260| 7a 65 6f 66 28 2a 69 66 | 75 6e 29 29 3b 0d 09 69 |zeof(*if|un));..i|
|00001270| 66 28 69 66 75 6e 20 3d | 3d 20 4e 55 4c 4c 29 20 |f(ifun =|= NULL) |
|00001280| 7b 0d 09 09 50 72 69 6e | 74 66 45 78 69 74 28 22 |{...Prin|tfExit("|
|00001290| 43 6f 6e 76 6f 6c 76 65 | 58 2f 59 3a 20 53 6f 72 |Convolve|X/Y: Sor|
|000012a0| 72 79 2c 20 63 6f 75 6c | 64 6e 27 74 20 61 6c 6c |ry, coul|dn't all|
|000012b0| 6f 63 61 74 65 20 65 6e | 6f 75 67 68 20 6d 65 6d |ocate en|ough mem|
|000012c0| 6f 72 79 20 66 6f 72 20 | 77 6f 72 6b 69 6e 67 20 |ory for |working |
|000012d0| 61 72 72 61 79 5c 30 30 | 37 5c 6e 22 29 3b 0d 09 |array\00|7\n");..|
|000012e0| 7d 0d 09 2f 2a 0d 09 57 | 65 20 77 69 6c 6c 20 73 |}../*..W|e will s|
|000012f0| 75 6d 20 69 6e 20 61 20 | 6c 6f 6e 67 20 72 65 67 |um in a |long reg|
|00001300| 69 73 74 65 72 2e 0d 09 | 54 68 65 20 73 75 6d 20 |ister...|The sum |
|00001310| 6f 76 65 72 20 74 68 65 | 20 70 6f 69 6e 74 20 73 |over the| point s|
|00001320| 70 72 65 61 64 20 66 75 | 6e 63 74 69 6f 6e 20 66 |pread fu|nction f|
|00001330| 5b 5d 20 77 69 6c 6c 20 | 79 69 65 6c 64 20 61 74 |[] will |yield at|
|00001340| 20 6d 6f 73 74 20 74 6d | 61 78 2c 20 64 65 66 69 | most tm|ax, defi|
|00001350| 6e 65 64 20 62 65 6c 6f | 77 2c 0d 09 73 6f 20 77 |ned belo|w,..so w|
|00001360| 65 20 63 61 6e 20 73 61 | 66 65 6c 79 20 6d 75 6c |e can sa|fely mul|
|00001370| 74 69 70 6c 79 20 66 5b | 5d 20 62 79 20 4c 4f 4e |tiply f[|] by LON|
|00001380| 47 5f 4d 41 58 2f 74 6d | 61 78 2c 20 77 69 74 68 |G_MAX/tm|ax, with|
|00001390| 6f 75 74 20 64 61 6e 67 | 65 72 20 6f 66 20 6f 76 |out dang|er of ov|
|000013a0| 65 72 66 6c 6f 77 69 6e | 67 20 74 2e 0d 09 2a 2f |erflowin|g t...*/|
|000013b0| 0d 09 66 6f 72 20 28 74 | 6d 61 78 3d 30 2e 30 2c |..for (t|max=0.0,|
|000013c0| 20 69 3d 30 3b 69 3c 64 | 69 6d 3b 69 2b 2b 29 20 | i=0;i<d|im;i++) |
|000013d0| 74 6d 61 78 20 2b 3d 20 | 66 61 62 73 28 66 5b 69 |tmax += |fabs(f[i|
|000013e0| 5d 29 3b 0d 09 74 6d 61 | 78 20 2a 3d 20 55 43 48 |]);..tma|x *= UCH|
|000013f0| 41 52 5f 4d 41 58 2b 31 | 3b 09 2f 2a 20 6d 61 78 |AR_MAX+1|;./* max|
|00001400| 69 6d 75 6d 20 76 61 6c | 75 65 20 66 6f 72 20 61 |imum val|ue for a|
|00001410| 20 70 69 78 65 6c 2c 20 | 32 35 35 2c 20 70 6c 75 | pixel, |255, plu|
|00001420| 73 20 31 20 66 6f 72 20 | 72 6f 75 6e 64 69 6e 67 |s 1 for |rounding|
|00001430| 20 2a 2f 0d 09 69 66 28 | 74 6d 61 78 3c 31 2e 30 | */..if(|tmax<1.0|
|00001440| 29 74 6d 61 78 3d 31 2e | 30 3b 0d 09 69 66 75 6e |)tmax=1.|0;..ifun|
|00001450| 53 63 61 6c 65 20 3d 20 | 4c 4f 4e 47 5f 4d 41 58 |Scale = |LONG_MAX|
|00001460| 2f 74 6d 61 78 3b 0d 09 | 66 6f 72 20 28 69 3d 30 |/tmax;..|for (i=0|
|00001470| 3b 69 3c 64 69 6d 3b 69 | 2b 2b 29 20 69 66 75 6e |;i<dim;i|++) ifun|
|00001480| 5b 69 5d 20 3d 20 66 5b | 69 5d 2a 69 66 75 6e 53 |[i] = f[|i]*ifunS|
|00001490| 63 61 6c 65 3b 0d 09 0d | 09 23 69 66 20 44 49 41 |cale;...|.#if DIA|
|000014a0| 47 4e 4f 53 54 49 43 53 | 0d 09 09 2f 2a 20 54 68 |GNOSTICS|.../* Th|
|000014b0| 69 73 20 69 73 20 61 20 | 64 69 61 67 6e 6f 73 74 |is is a |diagnost|
|000014c0| 69 63 20 70 72 69 6e 74 | 6f 75 74 20 74 6f 20 74 |ic print|out to t|
|000014d0| 72 61 63 6b 20 64 6f 77 | 6e 20 6f 76 65 72 66 6c |rack dow|n overfl|
|000014e0| 6f 77 20 70 72 6f 62 6c | 65 6d 73 20 2a 2f 0d 09 |ow probl|ems */..|
|000014f0| 09 74 20 3d 20 30 4c 3b | 0d 09 09 61 20 3d 20 30 |.t = 0L;|...a = 0|
|00001500| 2e 30 3b 0d 09 09 66 6f | 72 20 28 69 3d 30 3b 69 |.0;...fo|r (i=0;i|
|00001510| 3c 64 69 6d 3b 69 2b 2b | 29 20 7b 0d 09 09 09 74 |<dim;i++|) {....t|
|00001520| 20 2b 3d 20 6c 61 62 73 | 28 55 43 48 41 52 5f 4d | += labs|(UCHAR_M|
|00001530| 41 58 2a 69 66 75 6e 5b | 69 5d 29 3b 0d 09 09 09 |AX*ifun[|i]);....|
|00001540| 61 20 2b 3d 20 66 61 62 | 73 28 66 5b 69 5d 29 3b |a += fab|s(f[i]);|
|00001550| 0d 09 09 7d 0d 09 09 64 | 65 76 69 63 65 3d 47 65 |...}...d|evice=Ge|
|00001560| 74 47 44 65 76 69 63 65 | 28 29 3b 0d 09 09 53 65 |tGDevice|();...Se|
|00001570| 74 47 44 65 76 69 63 65 | 28 47 65 74 4d 61 69 6e |tGDevice|(GetMain|
|00001580| 44 65 76 69 63 65 28 29 | 29 3b 0d 09 09 50 6d 46 |Device()|);...PmF|
|00001590| 6f 72 65 43 6f 6c 6f 72 | 28 55 43 48 41 52 5f 4d |oreColor|(UCHAR_M|
|000015a0| 41 58 29 3b 0d 09 09 50 | 6d 42 61 63 6b 43 6f 6c |AX);...P|mBackCol|
|000015b0| 6f 72 28 30 29 3b 0d 09 | 09 50 72 69 6e 74 66 45 |or(0);..|.PrintfE|
|000015c0| 78 69 74 28 22 61 3d 25 | 6c 66 2c 20 74 3d 25 6c |xit("a=%|lf, t=%l|
|000015d0| 78 2c 20 69 66 75 6e 53 | 63 61 6c 65 3d 25 6c 78 |x, ifunS|cale=%lx|
|000015e0| 2c 20 74 2f 69 66 75 6e | 53 63 61 6c 65 3d 25 6c |, t/ifun|Scale=%l|
|000015f0| 66 5c 6e 22 2c 61 2c 74 | 2c 69 66 75 6e 53 63 61 |f\n",a,t|,ifunSca|
|00001600| 6c 65 2c 74 2a 31 2e 30 | 2f 69 66 75 6e 53 63 61 |le,t*1.0|/ifunSca|
|00001610| 6c 65 29 3b 0d 09 09 53 | 65 74 47 44 65 76 69 63 |le);...S|etGDevic|
|00001620| 65 28 64 65 76 69 63 65 | 29 3b 0d 09 23 65 6e 64 |e(device|);..#end|
|00001630| 69 66 0d 09 0d 09 2f 2a | 0d 09 55 6e 66 6f 72 74 |if..../*|..Unfort|
|00001640| 75 6e 61 74 65 6c 79 20 | 43 6f 70 79 42 69 74 73 |unately |CopyBits|
|00001650| 20 77 69 6c 6c 20 63 72 | 61 73 68 20 69 66 20 74 | will cr|ash if t|
|00001660| 68 65 20 6c 69 6e 65 20 | 62 75 66 66 65 72 20 69 |he line |buffer i|
|00001670| 73 20 74 6f 6f 20 6c 61 | 72 67 65 2c 20 65 2e 67 |s too la|rge, e.g|
|00001680| 2e 0d 09 36 34 30 20 70 | 69 78 65 6c 73 20 6c 6f |...640 p|ixels lo|
|00001690| 6e 67 2e 20 57 65 20 63 | 61 6e 20 6d 69 6e 69 6d |ng. We c|an minim|
|000016a0| 69 7a 65 20 74 68 69 73 | 20 70 72 6f 62 6c 65 6d |ize this| problem|
|000016b0| 20 62 79 20 72 65 64 75 | 63 69 6e 67 20 74 68 65 | by redu|cing the|
|000016c0| 20 73 69 7a 65 20 6f 66 | 20 74 68 65 0d 09 73 72 | size of| the..sr|
|000016d0| 63 52 65 63 74 20 74 6f | 20 62 65 20 6e 6f 20 6c |cRect to| be no l|
|000016e0| 61 72 67 65 72 20 74 68 | 61 6e 20 6e 65 63 65 73 |arger th|an neces|
|000016f0| 73 61 72 79 20 28 69 2e | 65 2e 20 64 73 74 52 65 |sary (i.|e. dstRe|
|00001700| 63 74 20 70 6c 75 73 20 | 64 69 6d 29 2e 0d 09 2a |ct plus |dim)...*|
|00001710| 2f 0d 09 6d 79 73 72 63 | 52 65 63 74 20 3d 20 2a |/..mysrc|Rect = *|
|00001720| 73 72 63 52 65 63 74 50 | 74 72 3b 0d 09 6d 79 64 |srcRectP|tr;..myd|
|00001730| 73 74 52 65 63 74 20 3d | 20 2a 64 73 74 52 65 63 |stRect =| *dstRec|
|00001740| 74 50 74 72 3b 0d 09 69 | 66 28 63 6f 6e 76 6f 6c |tPtr;..i|f(convol|
|00001750| 76 65 58 29 7b 0d 09 09 | 69 3d 6d 79 73 72 63 52 |veX){...|i=mysrcR|
|00001760| 65 63 74 2e 72 69 67 68 | 74 2d 6d 79 73 72 63 52 |ect.righ|t-mysrcR|
|00001770| 65 63 74 2e 6c 65 66 74 | 20 2d 20 28 64 69 6d 2b |ect.left| - (dim+|
|00001780| 6d 79 64 73 74 52 65 63 | 74 2e 72 69 67 68 74 2d |mydstRec|t.right-|
|00001790| 6d 79 64 73 74 52 65 63 | 74 2e 6c 65 66 74 29 3b |mydstRec|t.left);|
|000017a0| 0d 09 09 69 66 28 69 3e | 30 29 49 6e 73 65 74 52 |...if(i>|0)InsetR|
|000017b0| 65 63 74 28 26 6d 79 73 | 72 63 52 65 63 74 2c 69 |ect(&mys|rcRect,i|
|000017c0| 2f 32 2c 30 29 3b 0d 09 | 09 69 3d 6d 79 73 72 63 |/2,0);..|.i=mysrc|
|000017d0| 52 65 63 74 2e 62 6f 74 | 74 6f 6d 2d 6d 79 73 72 |Rect.bot|tom-mysr|
|000017e0| 63 52 65 63 74 2e 74 6f | 70 20 2d 20 28 6d 79 64 |cRect.to|p - (myd|
|000017f0| 73 74 52 65 63 74 2e 62 | 6f 74 74 6f 6d 2d 6d 79 |stRect.b|ottom-my|
|00001800| 64 73 74 52 65 63 74 2e | 74 6f 70 29 3b 0d 09 09 |dstRect.|top);...|
|00001810| 69 66 28 69 3e 30 29 49 | 6e 73 65 74 52 65 63 74 |if(i>0)I|nsetRect|
|00001820| 28 26 6d 79 73 72 63 52 | 65 63 74 2c 30 2c 69 2f |(&mysrcR|ect,0,i/|
|00001830| 32 29 3b 0d 09 09 69 66 | 28 69 3c 30 29 49 6e 73 |2);...if|(i<0)Ins|
|00001840| 65 74 52 65 63 74 28 26 | 6d 79 64 73 74 52 65 63 |etRect(&|mydstRec|
|00001850| 74 2c 30 2c 2d 69 2f 32 | 29 3b 0d 09 7d 65 6c 73 |t,0,-i/2|);..}els|
|00001860| 65 7b 0d 09 09 69 3d 6d | 79 73 72 63 52 65 63 74 |e{...i=m|ysrcRect|
|00001870| 2e 72 69 67 68 74 2d 6d | 79 73 72 63 52 65 63 74 |.right-m|ysrcRect|
|00001880| 2e 6c 65 66 74 20 2d 20 | 28 6d 79 64 73 74 52 65 |.left - |(mydstRe|
|00001890| 63 74 2e 72 69 67 68 74 | 2d 6d 79 64 73 74 52 65 |ct.right|-mydstRe|
|000018a0| 63 74 2e 6c 65 66 74 29 | 3b 0d 09 09 69 66 28 69 |ct.left)|;...if(i|
|000018b0| 3e 30 29 49 6e 73 65 74 | 52 65 63 74 28 26 6d 79 |>0)Inset|Rect(&my|
|000018c0| 73 72 63 52 65 63 74 2c | 69 2f 32 2c 30 29 3b 0d |srcRect,|i/2,0);.|
|000018d0| 09 09 69 66 28 69 3c 30 | 29 49 6e 73 65 74 52 65 |..if(i<0|)InsetRe|
|000018e0| 63 74 28 26 6d 79 64 73 | 74 52 65 63 74 2c 2d 69 |ct(&myds|tRect,-i|
|000018f0| 2f 32 2c 30 29 3b 0d 09 | 09 69 3d 6d 79 73 72 63 |/2,0);..|.i=mysrc|
|00001900| 52 65 63 74 2e 62 6f 74 | 74 6f 6d 2d 6d 79 73 72 |Rect.bot|tom-mysr|
|00001910| 63 52 65 63 74 2e 74 6f | 70 20 2d 20 28 64 69 6d |cRect.to|p - (dim|
|00001920| 2b 6d 79 64 73 74 52 65 | 63 74 2e 62 6f 74 74 6f |+mydstRe|ct.botto|
|00001930| 6d 2d 6d 79 64 73 74 52 | 65 63 74 2e 74 6f 70 29 |m-mydstR|ect.top)|
|00001940| 3b 0d 09 09 69 66 28 69 | 3e 30 29 49 6e 73 65 74 |;...if(i|>0)Inset|
|00001950| 52 65 63 74 28 26 6d 79 | 73 72 63 52 65 63 74 2c |Rect(&my|srcRect,|
|00001960| 30 2c 69 2f 32 29 3b 0d | 09 7d 0d 09 73 72 63 52 |0,i/2);.|.}..srcR|
|00001970| 65 63 74 50 74 72 20 3d | 20 26 6d 79 73 72 63 52 |ectPtr =| &mysrcR|
|00001980| 65 63 74 3b 0d 09 64 73 | 74 52 65 63 74 50 74 72 |ect;..ds|tRectPtr|
|00001990| 20 3d 20 26 6d 79 64 73 | 74 52 65 63 74 3b 0d 0d | = &myds|tRect;..|
|000019a0| 09 69 66 28 63 6f 6e 76 | 6f 6c 76 65 58 29 7b 0d |.if(conv|olveX){.|
|000019b0| 09 09 64 73 74 4c 69 6e | 65 73 20 3d 20 64 73 74 |..dstLin|es = dst|
|000019c0| 52 65 63 74 50 74 72 2d | 3e 62 6f 74 74 6f 6d 2d |RectPtr-|>bottom-|
|000019d0| 64 73 74 52 65 63 74 50 | 74 72 2d 3e 74 6f 70 3b |dstRectP|tr->top;|
|000019e0| 0d 09 09 73 72 63 4c 69 | 6e 65 73 20 3d 20 73 72 |...srcLi|nes = sr|
|000019f0| 63 52 65 63 74 50 74 72 | 2d 3e 62 6f 74 74 6f 6d |cRectPtr|->bottom|
|00001a00| 2d 73 72 63 52 65 63 74 | 50 74 72 2d 3e 74 6f 70 |-srcRect|Ptr->top|
|00001a10| 3b 0d 09 09 64 73 74 4c | 65 6e 67 74 68 20 3d 20 |;...dstL|ength = |
|00001a20| 64 73 74 52 65 63 74 50 | 74 72 2d 3e 72 69 67 68 |dstRectP|tr->righ|
|00001a30| 74 2d 64 73 74 52 65 63 | 74 50 74 72 2d 3e 6c 65 |t-dstRec|tPtr->le|
|00001a40| 66 74 3b 0d 09 09 73 72 | 63 4c 65 6e 67 74 68 20 |ft;...sr|cLength |
|00001a50| 3d 20 73 72 63 52 65 63 | 74 50 74 72 2d 3e 72 69 |= srcRec|tPtr->ri|
|00001a60| 67 68 74 2d 73 72 63 52 | 65 63 74 50 74 72 2d 3e |ght-srcR|ectPtr->|
|00001a70| 6c 65 66 74 3b 0d 09 7d | 65 6c 73 65 7b 0d 09 09 |left;..}|else{...|
|00001a80| 64 73 74 4c 65 6e 67 74 | 68 20 3d 20 64 73 74 52 |dstLengt|h = dstR|
|00001a90| 65 63 74 50 74 72 2d 3e | 62 6f 74 74 6f 6d 2d 64 |ectPtr->|bottom-d|
|00001aa0| 73 74 52 65 63 74 50 74 | 72 2d 3e 74 6f 70 3b 0d |stRectPt|r->top;.|
|00001ab0| 09 09 73 72 63 4c 65 6e | 67 74 68 20 3d 20 73 72 |..srcLen|gth = sr|
|00001ac0| 63 52 65 63 74 50 74 72 | 2d 3e 62 6f 74 74 6f 6d |cRectPtr|->bottom|
|00001ad0| 2d 73 72 63 52 65 63 74 | 50 74 72 2d 3e 74 6f 70 |-srcRect|Ptr->top|
|00001ae0| 3b 0d 09 09 64 73 74 4c | 69 6e 65 73 20 3d 20 64 |;...dstL|ines = d|
|00001af0| 73 74 52 65 63 74 50 74 | 72 2d 3e 72 69 67 68 74 |stRectPt|r->right|
|00001b00| 2d 64 73 74 52 65 63 74 | 50 74 72 2d 3e 6c 65 66 |-dstRect|Ptr->lef|
|00001b10| 74 3b 0d 09 09 73 72 63 | 4c 69 6e 65 73 20 3d 20 |t;...src|Lines = |
|00001b20| 73 72 63 52 65 63 74 50 | 74 72 2d 3e 72 69 67 68 |srcRectP|tr->righ|
|00001b30| 74 2d 73 72 63 52 65 63 | 74 50 74 72 2d 3e 6c 65 |t-srcRec|tPtr->le|
|00001b40| 66 74 3b 0d 09 7d 0d 09 | 69 66 28 64 73 74 4c 69 |ft;..}..|if(dstLi|
|00001b50| 6e 65 73 20 3e 20 73 72 | 63 4c 69 6e 65 73 29 20 |nes > sr|cLines) |
|00001b60| 6c 69 6e 65 73 20 3d 20 | 73 72 63 4c 69 6e 65 73 |lines = |srcLines|
|00001b70| 3b 20 0d 09 65 6c 73 65 | 20 6c 69 6e 65 73 20 3d |; ..else| lines =|
|00001b80| 20 64 73 74 4c 69 6e 65 | 73 3b 0d 09 0d 09 2f 2a | dstLine|s;..../*|
|00001b90| 20 41 6c 6c 6f 63 61 74 | 65 20 6f 75 72 20 6c 69 | Allocat|e our li|
|00001ba0| 6e 65 20 62 75 66 66 65 | 72 73 2e 20 2a 2f 0d 09 |ne buffe|rs. */..|
|00001bb0| 73 72 63 54 6d 70 20 3d | 20 2a 2a 28 2a 47 65 74 |srcTmp =| **(*Get|
|00001bc0| 47 44 65 76 69 63 65 28 | 29 29 2d 3e 67 64 50 4d |GDevice(|))->gdPM|
|00001bd0| 61 70 3b 09 2f 2a 20 55 | 73 65 20 63 75 72 72 65 |ap;./* U|se curre|
|00001be0| 6e 74 20 64 65 76 69 63 | 65 20 74 6f 20 69 6e 69 |nt devic|e to ini|
|00001bf0| 74 20 50 69 78 4d 61 70 | 20 66 69 65 6c 64 73 20 |t PixMap| fields |
|00001c00| 2a 2f 0d 09 73 72 63 54 | 6d 70 2e 70 6d 56 65 72 |*/..srcT|mp.pmVer|
|00001c10| 73 69 6f 6e 3d 73 72 63 | 54 6d 70 2e 70 61 63 6b |sion=src|Tmp.pack|
|00001c20| 54 79 70 65 3d 73 72 63 | 54 6d 70 2e 70 61 63 6b |Type=src|Tmp.pack|
|00001c30| 53 69 7a 65 3d 30 3b 0d | 09 73 72 63 54 6d 70 2e |Size=0;.|.srcTmp.|
|00001c40| 70 6c 61 6e 65 42 79 74 | 65 73 3d 73 72 63 54 6d |planeByt|es=srcTm|
|00001c50| 70 2e 70 6d 52 65 73 65 | 72 76 65 64 3d 30 3b 0d |p.pmRese|rved=0;.|
|00001c60| 09 73 72 63 54 6d 70 2e | 63 6d 70 43 6f 75 6e 74 |.srcTmp.|cmpCount|
|00001c70| 3d 31 3b 0d 09 73 72 63 | 54 6d 70 2e 70 69 78 65 |=1;..src|Tmp.pixe|
|00001c80| 6c 53 69 7a 65 3d 38 3b | 09 09 09 09 09 2f 2a 20 |lSize=8;|...../* |
|00001c90| 54 68 65 20 6d 61 69 6e | 20 6c 6f 6f 70 20 61 73 |The main| loop as|
|00001ca0| 73 75 6d 65 73 20 38 20 | 62 69 74 73 20 70 65 72 |sumes 8 |bits per|
|00001cb0| 20 70 69 78 65 6c 20 2a | 2f 0d 09 69 66 28 63 6f | pixel *|/..if(co|
|00001cc0| 6e 76 6f 6c 76 65 58 29 | 7b 0d 09 09 53 65 74 52 |nvolveX)|{...SetR|
|00001cd0| 65 63 74 28 26 73 72 63 | 54 6d 70 2e 62 6f 75 6e |ect(&src|Tmp.boun|
|00001ce0| 64 73 2c 30 2c 30 2c 73 | 72 63 4c 65 6e 67 74 68 |ds,0,0,s|rcLength|
|00001cf0| 2c 31 29 3b 09 2f 2a 20 | 61 20 68 6f 72 69 7a 6f |,1);./* |a horizo|
|00001d00| 6e 74 61 6c 20 6c 69 6e | 65 20 62 75 66 66 65 72 |ntal lin|e buffer|
|00001d10| 20 2a 2f 0d 09 7d 65 6c | 73 65 7b 0d 09 09 53 65 | */..}el|se{...Se|
|00001d20| 74 52 65 63 74 28 26 73 | 72 63 54 6d 70 2e 62 6f |tRect(&s|rcTmp.bo|
|00001d30| 75 6e 64 73 2c 30 2c 30 | 2c 31 2c 73 72 63 4c 65 |unds,0,0|,1,srcLe|
|00001d40| 6e 67 74 68 29 3b 09 2f | 2a 20 61 20 76 65 72 74 |ngth);./|* a vert|
|00001d50| 69 63 61 6c 20 6c 69 6e | 65 20 62 75 66 66 65 72 |ical lin|e buffer|
|00001d60| 20 2a 2f 0d 09 7d 0d 09 | 73 72 63 54 6d 70 2e 72 | */..}..|srcTmp.r|
|00001d70| 6f 77 42 79 74 65 73 20 | 3d 20 32 2a 28 28 28 73 |owBytes |= 2*(((s|
|00001d80| 72 63 54 6d 70 2e 62 6f | 75 6e 64 73 2e 72 69 67 |rcTmp.bo|unds.rig|
|00001d90| 68 74 2d 73 72 63 54 6d | 70 2e 62 6f 75 6e 64 73 |ht-srcTm|p.bounds|
|00001da0| 2e 6c 65 66 74 29 2a 73 | 72 63 54 6d 70 2e 70 69 |.left)*s|rcTmp.pi|
|00001db0| 78 65 6c 53 69 7a 65 2b | 31 35 29 2f 31 36 29 3b |xelSize+|15)/16);|
|00001dc0| 0d 09 73 72 63 54 6d 70 | 2e 62 61 73 65 41 64 64 |..srcTmp|.baseAdd|
|00001dd0| 72 20 3d 20 28 50 74 72 | 29 20 6d 61 6c 6c 6f 63 |r = (Ptr|) malloc|
|00001de0| 28 73 72 63 54 6d 70 2e | 72 6f 77 42 79 74 65 73 |(srcTmp.|rowBytes|
|00001df0| 2a 28 73 72 63 54 6d 70 | 2e 62 6f 75 6e 64 73 2e |*(srcTmp|.bounds.|
|00001e00| 62 6f 74 74 6f 6d 2d 73 | 72 63 54 6d 70 2e 62 6f |bottom-s|rcTmp.bo|
|00001e10| 75 6e 64 73 2e 74 6f 70 | 29 29 3b 0d 09 73 72 63 |unds.top|));..src|
|00001e20| 54 6d 70 2e 72 6f 77 42 | 79 74 65 73 20 7c 3d 20 |Tmp.rowB|ytes |= |
|00001e30| 30 78 38 30 30 30 3b 09 | 2f 2a 20 4d 61 72 6b 20 |0x8000;.|/* Mark |
|00001e40| 69 74 20 61 73 20 61 20 | 50 69 78 4d 61 70 2c 20 |it as a |PixMap, |
|00001e50| 6e 6f 74 20 61 20 42 69 | 74 4d 61 70 20 2a 2f 0d |not a Bi|tMap */.|
|00001e60| 09 64 73 74 54 6d 70 20 | 3d 20 73 72 63 54 6d 70 |.dstTmp |= srcTmp|
|00001e70| 3b 0d 09 69 66 28 63 6f | 6e 76 6f 6c 76 65 58 29 |;..if(co|nvolveX)|
|00001e80| 7b 0d 09 09 53 65 74 52 | 65 63 74 28 26 64 73 74 |{...SetR|ect(&dst|
|00001e90| 54 6d 70 2e 62 6f 75 6e | 64 73 2c 30 2c 30 2c 64 |Tmp.boun|ds,0,0,d|
|00001ea0| 73 74 4c 65 6e 67 74 68 | 2c 31 29 3b 09 2f 2a 20 |stLength|,1);./* |
|00001eb0| 61 20 68 6f 72 69 7a 6f | 6e 74 61 6c 20 6c 69 6e |a horizo|ntal lin|
|00001ec0| 65 20 62 75 66 66 65 72 | 20 2a 2f 0d 09 7d 65 6c |e buffer| */..}el|
|00001ed0| 73 65 7b 0d 09 09 53 65 | 74 52 65 63 74 28 26 64 |se{...Se|tRect(&d|
|00001ee0| 73 74 54 6d 70 2e 62 6f | 75 6e 64 73 2c 30 2c 30 |stTmp.bo|unds,0,0|
|00001ef0| 2c 31 2c 64 73 74 4c 65 | 6e 67 74 68 29 3b 09 2f |,1,dstLe|ngth);./|
|00001f00| 2a 20 61 20 76 65 72 74 | 69 63 61 6c 20 6c 69 6e |* a vert|ical lin|
|00001f10| 65 20 62 75 66 66 65 72 | 20 2a 2f 0d 09 7d 0d 09 |e buffer| */..}..|
|00001f20| 64 73 74 54 6d 70 2e 72 | 6f 77 42 79 74 65 73 20 |dstTmp.r|owBytes |
|00001f30| 3d 20 32 2a 28 28 28 64 | 73 74 54 6d 70 2e 62 6f |= 2*(((d|stTmp.bo|
|00001f40| 75 6e 64 73 2e 72 69 67 | 68 74 2d 64 73 74 54 6d |unds.rig|ht-dstTm|
|00001f50| 70 2e 62 6f 75 6e 64 73 | 2e 6c 65 66 74 29 2a 64 |p.bounds|.left)*d|
|00001f60| 73 74 54 6d 70 2e 70 69 | 78 65 6c 53 69 7a 65 2b |stTmp.pi|xelSize+|
|00001f70| 31 35 29 2f 31 36 29 3b | 0d 09 64 73 74 54 6d 70 |15)/16);|..dstTmp|
|00001f80| 2e 62 61 73 65 41 64 64 | 72 20 3d 20 28 50 74 72 |.baseAdd|r = (Ptr|
|00001f90| 29 20 6d 61 6c 6c 6f 63 | 28 64 73 74 54 6d 70 2e |) malloc|(dstTmp.|
|00001fa0| 72 6f 77 42 79 74 65 73 | 2a 28 64 73 74 54 6d 70 |rowBytes|*(dstTmp|
|00001fb0| 2e 62 6f 75 6e 64 73 2e | 62 6f 74 74 6f 6d 2d 64 |.bounds.|bottom-d|
|00001fc0| 73 74 54 6d 70 2e 62 6f | 75 6e 64 73 2e 74 6f 70 |stTmp.bo|unds.top|
|00001fd0| 29 29 3b 0d 09 64 73 74 | 54 6d 70 2e 72 6f 77 42 |));..dst|Tmp.rowB|
|00001fe0| 79 74 65 73 20 7c 3d 20 | 30 78 38 30 30 30 3b 09 |ytes |= |0x8000;.|
|00001ff0| 2f 2a 20 4d 61 72 6b 20 | 69 74 20 61 73 20 61 20 |/* Mark |it as a |
|00002000| 50 69 78 4d 61 70 2c 20 | 6e 6f 74 20 61 20 42 69 |PixMap, |not a Bi|
|00002010| 74 4d 61 70 20 2a 2f 0d | 09 69 66 28 73 72 63 54 |tMap */.|.if(srcT|
|00002020| 6d 70 2e 62 61 73 65 41 | 64 64 72 20 3d 3d 20 4e |mp.baseA|ddr == N|
|00002030| 55 4c 4c 20 7c 7c 20 64 | 73 74 54 6d 70 2e 62 61 |ULL || d|stTmp.ba|
|00002040| 73 65 41 64 64 72 20 3d | 3d 20 4e 55 4c 4c 29 0d |seAddr =|= NULL).|
|00002050| 09 09 50 72 69 6e 74 66 | 45 78 69 74 28 22 43 6f |..Printf|Exit("Co|
|00002060| 6e 76 6f 6c 76 65 58 2f | 59 3a 20 53 6f 72 72 79 |nvolveX/|Y: Sorry|
|00002070| 2c 20 63 6f 75 6c 64 6e | 27 74 20 61 6c 6c 6f 63 |, couldn|'t alloc|
|00002080| 61 74 65 20 65 6e 6f 75 | 67 68 20 6d 65 6d 6f 72 |ate enou|gh memor|
|00002090| 79 20 66 6f 72 20 77 6f | 72 6b 69 6e 67 20 61 72 |y for wo|rking ar|
|000020a0| 72 61 79 73 5c 30 30 37 | 5c 6e 22 29 3b 0d 09 0d |rays\007|\n");...|
|000020b0| 09 2f 2a 20 44 65 66 69 | 6e 65 20 74 68 65 20 72 |./* Defi|ne the r|
|000020c0| 65 63 74 61 6e 67 6c 65 | 73 20 74 68 61 74 20 6d |ectangle|s that m|
|000020d0| 61 70 20 73 72 63 20 61 | 6e 64 20 64 73 74 20 74 |ap src a|nd dst t|
|000020e0| 6f 20 74 68 65 69 72 20 | 72 65 73 70 65 63 74 69 |o their |respecti|
|000020f0| 76 65 20 6c 69 6e 65 20 | 62 75 66 66 65 72 73 20 |ve line |buffers |
|00002100| 2a 2f 0d 09 73 72 63 52 | 65 63 74 20 3d 20 73 72 |*/..srcR|ect = sr|
|00002110| 63 54 6d 70 2e 62 6f 75 | 6e 64 73 3b 0d 09 4f 66 |cTmp.bou|nds;..Of|
|00002120| 66 73 65 74 52 65 63 74 | 28 26 73 72 63 52 65 63 |fsetRect|(&srcRec|
|00002130| 74 2c 73 72 63 52 65 63 | 74 50 74 72 2d 3e 6c 65 |t,srcRec|tPtr->le|
|00002140| 66 74 2c 73 72 63 52 65 | 63 74 50 74 72 2d 3e 74 |ft,srcRe|ctPtr->t|
|00002150| 6f 70 29 3b 0d 09 64 73 | 74 52 65 63 74 20 3d 20 |op);..ds|tRect = |
|00002160| 64 73 74 54 6d 70 2e 62 | 6f 75 6e 64 73 3b 0d 09 |dstTmp.b|ounds;..|
|00002170| 4f 66 66 73 65 74 52 65 | 63 74 28 26 64 73 74 52 |OffsetRe|ct(&dstR|
|00002180| 65 63 74 2c 64 73 74 52 | 65 63 74 50 74 72 2d 3e |ect,dstR|ectPtr->|
|00002190| 6c 65 66 74 2c 64 73 74 | 52 65 63 74 50 74 72 2d |left,dst|RectPtr-|
|000021a0| 3e 74 6f 70 29 3b 0d 09 | 69 66 28 63 6f 6e 76 6f |>top);..|if(convo|
|000021b0| 6c 76 65 58 29 7b 0d 09 | 09 4f 66 66 73 65 74 52 |lveX){..|.OffsetR|
|000021c0| 65 63 74 28 26 73 72 63 | 52 65 63 74 2c 30 2c 73 |ect(&src|Rect,0,s|
|000021d0| 72 63 4c 69 6e 65 73 2f | 32 2d 6c 69 6e 65 73 2f |rcLines/|2-lines/|
|000021e0| 32 29 3b 0d 09 09 4f 66 | 66 73 65 74 52 65 63 74 |2);...Of|fsetRect|
|000021f0| 28 26 64 73 74 52 65 63 | 74 2c 30 2c 64 73 74 4c |(&dstRec|t,0,dstL|
|00002200| 69 6e 65 73 2f 32 2d 6c | 69 6e 65 73 2f 32 29 3b |ines/2-l|ines/2);|
|00002210| 0d 09 7d 65 6c 73 65 7b | 0d 09 09 4f 66 66 73 65 |..}else{|...Offse|
|00002220| 74 52 65 63 74 28 26 73 | 72 63 52 65 63 74 2c 73 |tRect(&s|rcRect,s|
|00002230| 72 63 4c 69 6e 65 73 2f | 32 2d 6c 69 6e 65 73 2f |rcLines/|2-lines/|
|00002240| 32 2c 30 29 3b 0d 09 09 | 4f 66 66 73 65 74 52 65 |2,0);...|OffsetRe|
|00002250| 63 74 28 26 64 73 74 52 | 65 63 74 2c 64 73 74 4c |ct(&dstR|ect,dstL|
|00002260| 69 6e 65 73 2f 32 2d 6c | 69 6e 65 73 2f 32 2c 30 |ines/2-l|ines/2,0|
|00002270| 29 3b 0d 09 7d 0d 09 0d | 09 2f 2a 20 43 6f 6e 76 |);..}...|./* Conv|
|00002280| 6f 6c 76 65 20 6f 6e 65 | 20 6c 69 6e 65 20 70 65 |olve one| line pe|
|00002290| 72 20 69 74 65 72 61 74 | 69 6f 6e 20 2a 2f 0d 09 |r iterat|ion */..|
|000022a0| 2f 2a 20 79 20 69 6e 64 | 69 63 61 74 65 73 20 77 |/* y ind|icates w|
|000022b0| 68 69 63 68 20 6c 69 6e | 65 2c 20 78 20 69 6e 64 |hich lin|e, x ind|
|000022c0| 69 63 61 74 65 73 20 77 | 68 69 63 68 20 70 69 78 |icates w|hich pix|
|000022d0| 65 6c 20 61 6c 6f 6e 67 | 20 74 68 61 74 20 6c 69 |el along| that li|
|000022e0| 6e 65 20 2a 2f 0d 09 66 | 6f 72 20 28 79 3d 20 2d |ne */..f|or (y= -|
|000022f0| 6c 69 6e 65 73 2f 32 3b | 20 79 3c 28 6c 69 6e 65 |lines/2;| y<(line|
|00002300| 73 2b 31 29 2f 32 3b 20 | 79 2b 2b 29 20 7b 0d 09 |s+1)/2; |y++) {..|
|00002310| 09 2f 2a 20 66 69 72 73 | 74 20 63 6f 70 79 20 61 |./* firs|t copy a|
|00002320| 20 6c 69 6e 65 20 66 72 | 6f 6d 20 73 72 63 42 69 | line fr|om srcBi|
|00002330| 74 73 20 69 6e 74 6f 20 | 6c 69 6e 65 2d 62 75 66 |ts into |line-buf|
|00002340| 66 65 72 20 73 72 63 54 | 6d 70 20 2a 2f 0d 09 09 |fer srcT|mp */...|
|00002350| 69 66 28 73 72 63 50 69 | 78 65 6c 53 69 7a 65 20 |if(srcPi|xelSize |
|00002360| 3d 3d 20 73 72 63 54 6d | 70 2e 70 69 78 65 6c 53 |== srcTm|p.pixelS|
|00002370| 69 7a 65 29 0d 09 09 09 | 43 6f 70 79 42 69 74 73 |ize)....|CopyBits|
|00002380| 51 75 69 63 6b 6c 79 28 | 73 72 63 42 69 74 73 2c |Quickly(|srcBits,|
|00002390| 28 42 69 74 4d 61 70 20 | 2a 29 20 26 73 72 63 54 |(BitMap |*) &srcT|
|000023a0| 6d 70 2c 26 73 72 63 52 | 65 63 74 2c 26 73 72 63 |mp,&srcR|ect,&src|
|000023b0| 54 6d 70 2e 62 6f 75 6e | 64 73 2c 73 72 63 43 6f |Tmp.boun|ds,srcCo|
|000023c0| 70 79 2c 4e 55 4c 4c 29 | 3b 0d 09 09 65 6c 73 65 |py,NULL)|;...else|
|000023d0| 0d 09 09 09 43 6f 70 79 | 42 69 74 73 28 73 72 63 |....Copy|Bits(src|
|000023e0| 42 69 74 73 2c 28 42 69 | 74 4d 61 70 20 2a 29 20 |Bits,(Bi|tMap *) |
|000023f0| 26 73 72 63 54 6d 70 2c | 26 73 72 63 52 65 63 74 |&srcTmp,|&srcRect|
|00002400| 2c 26 73 72 63 54 6d 70 | 2e 62 6f 75 6e 64 73 2c |,&srcTmp|.bounds,|
|00002410| 73 72 63 43 6f 70 79 2c | 4e 55 4c 4c 29 3b 0d 09 |srcCopy,|NULL);..|
|00002420| 09 69 66 28 51 44 33 32 | 45 78 69 73 74 73 28 29 |.if(QD32|Exists()|
|00002430| 29 53 77 61 70 4d 4d 55 | 4d 6f 64 65 28 26 6d 6d |)SwapMMU|Mode(&mm|
|00002440| 75 4d 6f 64 65 29 3b 0d | 09 09 69 66 28 21 63 6f |uMode);.|..if(!co|
|00002450| 6e 76 6f 6c 76 65 58 29 | 7b 0d 09 09 09 2f 2a 20 |nvolveX)|{..../* |
|00002460| 55 6e 66 6f 72 74 75 6e | 61 74 65 6c 79 20 74 68 |Unfortun|ately th|
|00002470| 65 20 6d 69 6e 69 6d 75 | 6d 20 50 69 78 4d 61 70 |e minimu|m PixMap|
|00002480| 20 72 6f 77 42 79 74 65 | 73 20 69 73 20 32 20 62 | rowByte|s is 2 b|
|00002490| 79 74 65 73 2c 20 73 6f | 20 77 65 0d 09 09 09 73 |ytes, so| we....s|
|000024a0| 71 75 65 65 7a 65 20 6f | 75 74 20 74 68 65 20 65 |queeze o|ut the e|
|000024b0| 78 74 72 61 20 73 70 61 | 63 65 20 62 65 66 6f 72 |xtra spa|ce befor|
|000024c0| 65 20 70 72 6f 63 65 73 | 73 69 6e 67 0d 09 09 09 |e proces|sing....|
|000024d0| 2a 2f 0d 09 09 09 73 72 | 63 50 74 72 3d 20 28 75 |*/....sr|cPtr= (u|
|000024e0| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 20 2a 29 20 |nsigned |char *) |
|000024f0| 73 72 63 54 6d 70 2e 62 | 61 73 65 41 64 64 72 3b |srcTmp.b|aseAddr;|
|00002500| 0d 09 09 09 64 73 74 50 | 74 72 3d 20 28 75 6e 73 |....dstP|tr= (uns|
|00002510| 69 67 6e 65 64 20 63 68 | 61 72 20 2a 29 20 73 72 |igned ch|ar *) sr|
|00002520| 63 54 6d 70 2e 62 61 73 | 65 41 64 64 72 3b 0d 09 |cTmp.bas|eAddr;..|
|00002530| 09 09 66 6f 72 20 28 78 | 3d 30 3b 20 78 3c 73 72 |..for (x|=0; x<sr|
|00002540| 63 4c 65 6e 67 74 68 3b | 20 78 2b 2b 29 20 7b 0d |cLength;| x++) {.|
|00002550| 09 09 09 09 2a 64 73 74 | 50 74 72 2b 2b 20 3d 20 |....*dst|Ptr++ = |
|00002560| 2a 73 72 63 50 74 72 3b | 0d 09 09 09 09 73 72 63 |*srcPtr;|.....src|
|00002570| 50 74 72 20 2b 3d 20 32 | 3b 0d 09 09 09 7d 0d 09 |Ptr += 2|;....}..|
|00002580| 09 7d 0d 09 09 64 73 74 | 50 74 72 3d 20 28 75 6e |.}...dst|Ptr= (un|
|00002590| 73 69 67 6e 65 64 20 63 | 68 61 72 20 2a 29 20 64 |signed c|har *) d|
|000025a0| 73 74 54 6d 70 2e 62 61 | 73 65 41 64 64 72 3b 0d |stTmp.ba|seAddr;.|
|000025b0| 09 09 73 72 63 78 20 3d | 20 73 72 63 4c 65 6e 67 |..srcx =| srcLeng|
|000025c0| 74 68 2f 32 20 2d 20 64 | 69 6d 2f 32 20 2d 20 64 |th/2 - d|im/2 - d|
|000025d0| 73 74 4c 65 6e 67 74 68 | 2f 32 3b 0d 09 09 66 6f |stLength|/2;...fo|
|000025e0| 72 20 28 78 3d 30 3b 20 | 78 3c 64 73 74 4c 65 6e |r (x=0; |x<dstLen|
|000025f0| 67 74 68 3b 20 78 2b 2b | 29 20 7b 0d 09 09 09 69 |gth; x++|) {....i|
|00002600| 6d 61 78 3d 64 69 6d 3b | 0d 09 09 09 69 66 28 73 |max=dim;|....if(s|
|00002610| 72 63 78 2b 64 69 6d 3e | 73 72 63 4c 65 6e 67 74 |rcx+dim>|srcLengt|
|00002620| 68 29 20 69 6d 61 78 3d | 73 72 63 4c 65 6e 67 74 |h) imax=|srcLengt|
|00002630| 68 2d 73 72 63 78 3b 0d | 09 09 09 69 66 28 73 72 |h-srcx;.|...if(sr|
|00002640| 63 78 3c 30 29 7b 0d 09 | 09 09 09 69 6d 69 6e 3d |cx<0){..|...imin=|
|00002650| 20 2d 73 72 63 78 3b 0d | 09 09 09 09 73 72 63 50 | -srcx;.|....srcP|
|00002660| 74 72 3d 28 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |tr=(unsi|gned cha|
|00002670| 72 20 2a 29 20 73 72 63 | 54 6d 70 2e 62 61 73 65 |r *) src|Tmp.base|
|00002680| 41 64 64 72 3b 0d 09 09 | 09 7d 0d 09 09 09 65 6c |Addr;...|.}....el|
|00002690| 73 65 20 7b 0d 09 09 09 | 09 69 6d 69 6e 3d 30 3b |se {....|.imin=0;|
|000026a0| 0d 09 09 09 09 73 72 63 | 50 74 72 3d 28 75 6e 73 |.....src|Ptr=(uns|
|000026b0| 69 67 6e 65 64 20 63 68 | 61 72 20 2a 29 20 73 72 |igned ch|ar *) sr|
|000026c0| 63 54 6d 70 2e 62 61 73 | 65 41 64 64 72 2b 73 72 |cTmp.bas|eAddr+sr|
|000026d0| 63 78 3b 0d 09 09 09 7d | 0d 09 09 09 66 50 74 72 |cx;....}|....fPtr|
|000026e0| 3d 26 69 66 75 6e 5b 69 | 6d 69 6e 5d 3b 0d 09 09 |=&ifun[i|min];...|
|000026f0| 09 66 6f 72 20 28 74 3d | 30 4c 2c 20 69 3d 69 6d |.for (t=|0L, i=im|
|00002700| 69 6e 3b 69 3c 69 6d 61 | 78 3b 69 2b 2b 29 20 74 |in;i<ima|x;i++) t|
|00002710| 20 2b 3d 20 2a 66 50 74 | 72 2b 2b 20 2a 20 28 6c | += *fPt|r++ * (l|
|00002720| 6f 6e 67 29 28 75 6e 73 | 69 67 6e 65 64 20 6c 6f |ong)(uns|igned lo|
|00002730| 6e 67 29 20 2a 73 72 63 | 50 74 72 2b 2b 3b 0d 23 |ng) *src|Ptr++;.#|
|00002740| 69 66 20 49 4d 50 52 4f | 56 45 44 5f 52 4f 55 4e |if IMPRO|VED_ROUN|
|00002750| 44 49 4e 47 0d 09 09 09 | 69 66 28 74 3e 30 29 74 |DING....|if(t>0)t|
|00002760| 2b 3d 69 66 75 6e 53 63 | 61 6c 65 3e 3e 31 3b 09 |+=ifunSc|ale>>1;.|
|00002770| 09 2f 2f 20 72 6f 75 6e | 64 20 74 2f 69 66 75 6e |.// roun|d t/ifun|
|00002780| 53 63 61 6c 65 20 74 6f | 20 6e 65 61 72 65 73 74 |Scale to| nearest|
|00002790| 20 69 6e 74 65 67 65 72 | 0d 09 09 09 65 6c 73 65 | integer|....else|
|000027a0| 20 74 2d 3d 69 66 75 6e | 53 63 61 6c 65 3e 3e 31 | t-=ifun|Scale>>1|
|000027b0| 3b 0d 23 65 6e 64 69 66 | 0d 09 09 09 74 2f 3d 69 |;.#endif|....t/=i|
|000027c0| 66 75 6e 53 63 61 6c 65 | 3b 0d 09 09 09 69 66 28 |funScale|;....if(|
|000027d0| 63 6f 6e 76 6f 6c 76 65 | 58 29 7b 0d 09 09 09 09 |convolve|X){.....|
|000027e0| 2a 64 73 74 50 74 72 2b | 2b 20 3d 20 28 75 6e 73 |*dstPtr+|+ = (uns|
|000027f0| 69 67 6e 65 64 20 63 68 | 61 72 29 20 74 3b 0d 09 |igned ch|ar) t;..|
|00002800| 09 09 7d 65 6c 73 65 7b | 0d 09 09 09 09 2f 2a 20 |..}else{|...../* |
|00002810| 55 6e 66 6f 72 74 75 6e | 61 74 65 6c 79 20 74 68 |Unfortun|ately th|
|00002820| 65 20 6d 69 6e 69 6d 75 | 6d 20 50 69 78 4d 61 70 |e minimu|m PixMap|
|00002830| 20 72 6f 77 42 79 74 65 | 73 20 69 73 20 32 20 62 | rowByte|s is 2 b|
|00002840| 79 74 65 73 2c 20 73 6f | 20 77 65 0d 09 09 09 09 |ytes, so| we.....|
|00002850| 69 6e 73 65 72 74 20 61 | 20 73 70 61 63 65 20 62 |insert a| space b|
|00002860| 65 74 77 65 65 6e 20 70 | 69 78 65 6c 73 0d 09 09 |etween p|ixels...|
|00002870| 09 09 2a 2f 0d 09 09 09 | 09 2a 64 73 74 50 74 72 |..*/....|.*dstPtr|
|00002880| 20 3d 20 28 75 6e 73 69 | 67 6e 65 64 20 63 68 61 | = (unsi|gned cha|
|00002890| 72 29 20 74 3b 0d 09 09 | 09 09 64 73 74 50 74 72 |r) t;...|..dstPtr|
|000028a0| 20 2b 3d 20 32 3b 0d 09 | 09 09 7d 0d 09 09 09 73 | += 2;..|..}....s|
|000028b0| 72 63 78 2b 2b 3b 0d 09 | 09 7d 0d 09 09 69 66 28 |rcx++;..|.}...if(|
|000028c0| 51 44 33 32 45 78 69 73 | 74 73 28 29 29 53 77 61 |QD32Exis|ts())Swa|
|000028d0| 70 4d 4d 55 4d 6f 64 65 | 28 26 6d 6d 75 4d 6f 64 |pMMUMode|(&mmuMod|
|000028e0| 65 29 3b 0d 09 09 2f 2a | 20 66 69 6e 61 6c 6c 79 |e);.../*| finally|
|000028f0| 2c 20 63 6f 70 79 20 74 | 68 65 20 6c 69 6e 65 20 |, copy t|he line |
|00002900| 66 72 6f 6d 20 62 75 66 | 66 65 72 20 64 73 74 54 |from buf|fer dstT|
|00002910| 6d 70 20 74 6f 20 64 73 | 74 42 69 74 73 20 2a 2f |mp to ds|tBits */|
|00002920| 0d 09 09 69 66 28 64 73 | 74 50 69 78 65 6c 53 69 |...if(ds|tPixelSi|
|00002930| 7a 65 20 3d 3d 20 64 73 | 74 54 6d 70 2e 70 69 78 |ze == ds|tTmp.pix|
|00002940| 65 6c 53 69 7a 65 29 0d | 09 09 09 43 6f 70 79 42 |elSize).|...CopyB|
|00002950| 69 74 73 51 75 69 63 6b | 6c 79 28 28 42 69 74 4d |itsQuick|ly((BitM|
|00002960| 61 70 20 2a 29 20 26 64 | 73 74 54 6d 70 2c 64 73 |ap *) &d|stTmp,ds|
|00002970| 74 42 69 74 73 2c 26 64 | 73 74 54 6d 70 2e 62 6f |tBits,&d|stTmp.bo|
|00002980| 75 6e 64 73 2c 26 64 73 | 74 52 65 63 74 2c 73 72 |unds,&ds|tRect,sr|
|00002990| 63 43 6f 70 79 2c 4e 55 | 4c 4c 29 3b 0d 09 09 65 |cCopy,NU|LL);...e|
|000029a0| 6c 73 65 0d 09 09 09 43 | 6f 70 79 42 69 74 73 28 |lse....C|opyBits(|
|000029b0| 28 42 69 74 4d 61 70 20 | 2a 29 20 26 64 73 74 54 |(BitMap |*) &dstT|
|000029c0| 6d 70 2c 64 73 74 42 69 | 74 73 2c 26 64 73 74 54 |mp,dstBi|ts,&dstT|
|000029d0| 6d 70 2e 62 6f 75 6e 64 | 73 2c 26 64 73 74 52 65 |mp.bound|s,&dstRe|
|000029e0| 63 74 2c 73 72 63 43 6f | 70 79 2c 4e 55 4c 4c 29 |ct,srcCo|py,NULL)|
|000029f0| 3b 0d 09 09 69 66 28 63 | 6f 6e 76 6f 6c 76 65 58 |;...if(c|onvolveX|
|00002a00| 29 7b 0d 09 09 09 4f 66 | 66 73 65 74 52 65 63 74 |){....Of|fsetRect|
|00002a10| 28 26 73 72 63 52 65 63 | 74 2c 30 2c 31 29 3b 09 |(&srcRec|t,0,1);.|
|00002a20| 2f 2a 20 61 64 6a 75 73 | 74 20 52 65 63 74 73 20 |/* adjus|t Rects |
|00002a30| 74 6f 20 70 6f 69 6e 74 | 20 74 6f 20 6e 65 78 74 |to point| to next|
|00002a40| 20 6c 69 6e 65 20 2a 2f | 0d 09 09 09 4f 66 66 73 | line */|....Offs|
|00002a50| 65 74 52 65 63 74 28 26 | 64 73 74 52 65 63 74 2c |etRect(&|dstRect,|
|00002a60| 30 2c 31 29 3b 0d 09 09 | 7d 65 6c 73 65 7b 0d 09 |0,1);...|}else{..|
|00002a70| 09 09 4f 66 66 73 65 74 | 52 65 63 74 28 26 73 72 |..Offset|Rect(&sr|
|00002a80| 63 52 65 63 74 2c 31 2c | 30 29 3b 09 2f 2a 20 61 |cRect,1,|0);./* a|
|00002a90| 64 6a 75 73 74 20 52 65 | 63 74 73 20 74 6f 20 70 |djust Re|cts to p|
|00002aa0| 6f 69 6e 74 20 74 6f 20 | 6e 65 78 74 20 6c 69 6e |oint to |next lin|
|00002ab0| 65 20 2a 2f 0d 09 09 09 | 4f 66 66 73 65 74 52 65 |e */....|OffsetRe|
|00002ac0| 63 74 28 26 64 73 74 52 | 65 63 74 2c 31 2c 30 29 |ct(&dstR|ect,1,0)|
|00002ad0| 3b 0d 09 09 7d 0d 09 7d | 0d 09 66 72 65 65 28 28 |;...}..}|..free((|
|00002ae0| 76 6f 69 64 20 2a 29 20 | 69 66 75 6e 29 3b 0d 09 |void *) |ifun);..|
|00002af0| 66 72 65 65 28 28 76 6f | 69 64 20 2a 29 20 73 72 |free((vo|id *) sr|
|00002b00| 63 54 6d 70 2e 62 61 73 | 65 41 64 64 72 29 3b 0d |cTmp.bas|eAddr);.|
|00002b10| 09 66 72 65 65 28 28 76 | 6f 69 64 20 2a 29 20 64 |.free((v|oid *) d|
|00002b20| 73 74 54 6d 70 2e 62 61 | 73 65 41 64 64 72 29 3b |stTmp.ba|seAddr);|
|00002b30| 0d 7d 0d 0d 09 00 00 00 | 00 00 00 00 00 00 00 00 |.}......|........|
|00002b40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b80| 00 00 01 00 00 00 02 cc | 00 00 01 cc 00 00 00 5e |........|.......^|
|00002b90| 66 49 3e 3b 27 57 02 06 | 3c 7c 67 47 33 1b 77 53 |fI>;'W..|<|gG3.wS|
|00002ba0| 6f 40 33 52 08 62 6c 4f | 2c 43 3b 02 7f 0e 14 45 |o@3R.blO|,C;....E|
|00002bb0| 0b 43 6f 6e 76 6f 6c 76 | 65 58 2e 63 02 00 00 00 |.Convolv|eX.c....|
|00002bc0| 54 45 58 54 4b 41 48 4c | 00 00 00 00 00 00 00 00 |TEXTKAHL|........|
|00002bd0| 00 00 54 45 58 54 4b 41 | 48 4c 00 00 00 00 00 00 |..TEXTKA|HL......|
|00002be0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bf0| 00 00 a7 e5 d5 af 00 00 | 00 00 00 00 03 2a 71 2a |........|.....*q*|
|00002c00| 6d 6a 70 70 1b 6f 67 30 | 0f 65 5d 7a 69 7f 03 73 |mjpp.og0|.e]zi..s|
|00002c10| 2e 7f 5e 1d 0c 09 3c 2f | 5f 36 23 2a 17 62 2e 2f |..^...</|_6#*.b./|
|00002c20| 3f 2a 73 58 34 23 6e 7d | 5d 39 16 36 67 3d 08 08 |?*sX4#n}|]9.6g=..|
|00002c30| 59 11 72 02 07 01 33 39 | 33 2d 51 74 62 19 33 71 |Y.r...39|3-Qtb.3q|
|00002c40| 43 47 5b 7f 13 6f 69 02 | 6e 36 41 76 04 03 14 11 |CG[..oi.|n6Av....|
|00002c50| 7f 3e 17 2a 2b 33 44 68 | 33 4f 59 78 69 76 7b 3b |.>.*+3Dh|3OYxiv{;|
|00002c60| 7c 35 2b 3f 20 7e 7e 5b | 6a 38 3c 51 7d 52 58 58 ||5+? ~~[|j8<Q}RXX|
|00002c70| 48 29 66 4d 68 58 09 18 | 6e 65 71 68 2d 48 6a 57 |H)fMhX..|neqh-HjW|
|00002c80| 00 00 00 8a 00 04 00 28 | 00 00 16 0e 00 87 00 5b |.......(|.......[|
|00002c90| e7 c8 80 00 01 6c 00 04 | 01 d3 00 7c 94 20 00 00 |.....l..|...|. ..|
|00002ca0| 00 00 00 00 09 6d 79 73 | 72 63 52 65 63 74 00 2a |.....mys|rcRect.*|
|00002cb0| 00 00 16 28 00 87 00 5b | e7 54 80 00 01 6d 00 78 |...(...[|.T...m.x|
|00002cc0| 01 d4 00 f0 94 20 00 00 | 00 00 00 00 0b 09 6d 79 |..... ..|......my|
|00002cd0| 64 73 74 52 65 63 74 0d | 00 10 00 00 16 52 00 88 |dstRect.|.....R..|
|00002ce0| 00 5b e6 f0 00 00 01 69 | 00 26 00 00 1a b0 00 a5 |.[.....i|.&......|
|00002cf0| 00 5b e6 d8 80 00 01 5a | 00 12 01 c1 02 42 94 20 |.[.....Z|.....B. |
|00002d00| 00 00 00 00 00 00 07 73 | 72 63 54 6d 70 20 00 00 |.......s|rcTmp ..|
|00002d10| 00 48 00 09 4d 6f 6e 61 | 63 6f 00 00 00 00 00 00 |.H..Mona|co......|
|00002d20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002d30| 00 00 00 00 00 06 00 04 | 00 29 00 07 01 80 02 4a |........|.).....J|
|00002d40| 00 29 00 07 01 80 02 4a | a7 9c 3a 04 00 00 00 12 |.).....J|..:.....|
|00002d50| 00 00 04 d1 00 00 00 00 | 01 00 00 00 00 1e 00 29 |........|.......)|
|00002d60| 00 07 01 80 02 4a 00 29 | 00 07 01 80 02 4a 00 00 |.....J.)|.....J..|
|00002d70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 cc |........|........|
|00002d80| 00 08 00 18 00 00 13 64 | 00 70 00 ee 2d 60 00 00 |.......d|.p..-`..|
|00002d90| 09 55 43 48 41 52 5f 4d | 41 58 00 14 00 00 13 31 |.UCHAR_M|AX.....1|
|00002da0| 00 6f 00 ee 2d 38 00 00 | 05 74 6d 61 78 20 00 18 |.o..-8..|.tmax ..|
|00002db0| 00 00 13 cb 00 72 00 ee | 2d 88 10 02 09 69 66 75 |.....r..|-....ifu|
|00002dc0| 6e 53 63 61 6c 65 00 14 | 00 00 13 e7 00 73 00 ee |nScale..|.....s..|
|00002dd0| 2c b0 00 00 05 2a 69 66 | 75 6e 00 14 00 00 13 e7 |,....*if|un......|
|00002de0| 00 73 00 ee 2c bc 00 00 | 05 69 66 75 6e 20 00 1a |.s..,...|.ifun ..|
|00002df0| 00 00 13 e7 00 73 00 ee | 2d 34 00 00 0b 69 66 75 |.....s..|-4...ifu|
|00002e00| 6e 5b 64 69 6d 2f 32 5d | 00 1c 00 00 13 e7 00 73 |n[dim/2]|.......s|
|00002e10| 00 ee 2c e8 00 00 0d 32 | 35 35 2a 69 66 75 6e 53 |..,....2|55*ifunS|
|00002e20| 63 61 6c 65 00 28 00 00 | 13 e7 00 73 00 ee 2c a8 |cale.(..|...s..,.|
|00002e30| 00 00 19 32 35 35 2a 69 | 66 75 6e 53 63 61 6c 65 |...255*i|funScale|
|00002e40| 2b 69 66 75 6e 53 63 61 | 6c 65 2f 32 00 00 01 00 |+ifunSca|le/2....|
|00002e50| 00 00 02 cc 00 00 01 cc | 00 00 00 5e 00 55 f5 18 |........|...^.U..|
|00002e60| 15 ac 00 00 00 1c 00 5e | 00 01 44 54 56 55 00 01 |.......^|..DTVU..|
|00002e70| 00 12 4d 50 53 52 00 01 | 00 2a 78 48 ff ff 00 00 |..MPSR..|.*xH....|
|00002e80| 00 00 00 00 00 00 2d 23 | ff ff 00 00 00 fc 00 00 |......-#|........|
|00002e90| 00 00 03 ed ff ff 00 00 | 00 8e 00 00 00 00 03 f0 |........|........|
|00002ea0| ff ff 00 00 00 da 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002eb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+